2017-05-25 48 views
1

我是iOS新手,所以如果聽起來語無倫次,請原諒。我想要的是在屏幕的下半部分有一張桌子,上半部分有一張圖。我可以成功地完成表格或圖表,但是我無法在一個屏幕上執行這兩個操作。如果我先把桌子放在桌子上,它會佔用整個屏幕。如果我先放置一個視圖,它會佔用整個屏幕,如果我把它放在它的頂部,表視圖控制器無法找到tableView。我得到的錯誤是:ios swift table half a screen

Terminating app due to uncaught exception 'NSInternalInconsistencyException`, reason '[UITableViewController loadView] loaded the nib but didn't get a UITableView 

我猜它找不到它,因爲表視圖從屬於視圖控件。什麼是實現這一目標的最佳方式?

感謝

回答

1

我猜它找不到它,因爲表視圖是從屬於視圖控件。什麼是實現這一目標的最佳方式?

問題是您使用的是UITableViewController,它預計它的頂級視圖是UITableView實例。代替子類UIViewController,並根據需要實施表格數據源和委託方法。您的視圖控制器應該有一個簡單的舊的UIView作爲其頂層視圖,並且您可以插入一個表視圖和一個圖視圖作爲該視圖的子視圖。

0

Caleb提出了一個很好的老問題解決方案。

更現代和更靈活的方法是使用父視圖控制器和兩個子視圖控制器。一個會驅動圖形,另一個會是TableViewController並驅動表格。這樣做的優點在於它隔離了不同的功能元素。如果您決定更換小型設備的組件,將兩者分成標籤控制器等將變得微不足道。