【发布时间】:2010-04-19 10:35:42
【问题描述】:
我创建了一个标签栏应用程序,并将第一个标签设为表格。因此,我创建了一个 tableView 控制器,并将第一个选项卡的视图控制器的类标识设置为我的 tableView 控制器。
这很好用,我看到表格的内容填满了整个屏幕。
但是,这并不是我最终目标中真正想要的——我想要一个具有多个视图的复合窗口: - 上述表格 - 包含数据的自定义视图
所以我要做的是为此内容创建一个 nib(称为 contentNib),将选项卡的类从 tableView 控制器更改为通用 UIViewController,并将该选项卡的 nib 设置为这个新的 contentNib。
在这个新的 contentNib 中,我拖动 tableView 并将 File's Owner 设置为 TableViewController。然后我将数据源和委托链接到文件的所有者(即 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 类的默认行为是使表格视图填充了导航栏和标签栏之间的屏幕(如果有的话)。”*
【问题讨论】:
标签: iphone