2010-02-15 61 views
4

上方的UIView我想顯示的UIView上面我的tableview,用於測試目的我使用了一個搜索欄(以消除我的代碼任何可能的問題)。如何添加一個TableViewController

我的設置:
標籤欄控制器
        MyCustomTableViewController
               查看
                       的TableView(自定義單元格高度)
                       搜索欄

我已經定位在 「窗口」 的頂部的搜索欄,並推倒了實現代碼如下,以便它位於搜索欄的正下方。
所以在IB中,一切看起來都很棒。
但是當我啓動應用程序的實現代碼如下佔據整個屏幕,搜索欄是無處可尋。

我是很新的IPhone發展,有可能是一個非常簡單的解決辦法(?)。
/吉米

回答

4

真正簡單的解決方案是:

  • 創建一個實現UITableViewDelegateUITableViewDataSource就像UITableViewController做一個自定義的UIViewController子類。還添加一個UITableView插座。
  • 在XIB文件,把你的搜索欄和UITableView視圖控制器的視圖中。
  • 連接表視圖的tableView出口在自定義UIViewController
  • UITableView的委託和數據源連接到文件的所有者(自定義UIViewController實現正確的代表)

您現在有一個自定義視圖控制器,其工作原理與UITableViewController一樣,除非您完全控制其佈局。您以相同的方式實施代表。

+0

工作就像一個魅力=)。 (澄清:「在XIB文件中」是你放置你的自定義UIView而不是自定義UIView的XIB的地方,因爲我首先想到) 謝謝 – 2010-02-15 18:08:35

1

如果你MyCustomTableViewController實際上是一個UITableViewController,那麼你就在IB注意到,「意見」的出口直接指向您的UITableView,而不是在IB根的UIView。這是UITableViewController對象的默認行爲。只需將「查看」插口重定向到根UIView,並且所有內容都應該正確顯示。

+0

MyCustomTableViewController是的UITableViewController derrived,因爲我希望tableview中包含定製單元的一類。 似乎我的MyCustomTableViewController上缺少「View」插座,關於爲什麼以及如何恢復它的任何想法? – 2010-02-15 10:58:47

+0

呃沒有。'UITableViewController'期望視圖指向一個'UITableView',如果將其改爲指向某種其他類型的視圖,它將完全失敗。 – 2010-02-15 15:25:46

+0

當然。我忘記了我通常將UITableViewController的超類更改爲UIViewController。這樣我就不必在表視圖中編寫代表/數據源方法。 – 2010-02-15 18:38:15

相關問題