2010-02-15 54 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

相关问题