问题与显示复合视图的标签栏视图
我创建了一个标签栏应用程序,并使第一个选项卡成为表格。所以我创建了一个tableView控制器,并将第一个选项卡的视图控制器的类标识设置为我的tableView控制器。问题与显示复合视图的标签栏视图
这工作正常,我看到表中的内容填满整个屏幕。
然而,这并不是我真正想要的最终目标 - 我想有一个复合窗多个视图: - 上述表 - 数据在它
所以我做的一个自定义视图为此内容创建一个笔尖(将其称为contentNib),将tab的类从tableView控制器更改为通用UIViewController,并将该选项卡的笔尖设置为这个新的contentNib。
在这个新的contentNib中,拖动一个tableView并将File's Owner设置为TableViewController。然后我将dataSource和委托链接到文件的所有者(即TableViewController)。
令人惊讶的,这并不工作,我收到错误消息:
**Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[UIViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x3b0f910'**
,因为文件的所有者这是扑朔迷离我是TableViewController,已被指定为这两个数据源和委托。是否有人对我的混淆有深入的了解,或者链接到如何让复合视图包含tableView的示例?
***** update ****我在Apple TableView编程指南中看到这一点: “注意:如果要查看视图,您应该使用UIViewController子类而不是UITableViewController的子类来管理表视图托管由多个子视图组成,其中一个是表视图UITableViewController类的默认行为是使表视图填充导航栏和标签栏(如果存在)之间的屏幕。“* < -----我真的不明白这是告诉我要做什么,但如果有人能够解释或指出我的例子,我会非常感激!
文件的所有者应该是您实例化的类。例如,在您的contentNib文件中,您应该分配并初始化一个表视图,并将@“contentNib”作为参数传递给initWithNibNamed:bundle :.这听起来像你没有这样做,因为文件的所有者,而在IB设置为一个UITableViewController,实际上只是一个UIViewController。
IB中的设置只是为了让IB知道什么网点和操作可用;你有责任提供适当的对象。
谢谢本。我对IB有许多小混混,你帮助清除了其中的一个。 – ambertch 2010-04-22 03:20:20