使用 TableView 向视图控制器添加导航
Posted
技术标签:
【中文标题】使用 TableView 向视图控制器添加导航【英文标题】:Adding a Navigation to a View Controller with a TableView 【发布时间】:2013-10-10 21:26:41 【问题描述】:我正在尝试在视图控制器的顶部添加(或拥有)一个导航栏(或项目),并在导航栏的正下方添加一个表格视图。我遇到的问题是,当我将 tableview 的数据源设置为 View Controller 时,我的应用程序将崩溃(将 tableview 的委托设置为 View Controller 不会)。目前,tableview 的代码在默认的 ViewController.m 中。我是否将 tableview 的代码放在正确的位置,或者我是否连接不正确?
这是它给我的错误:
2013-10-10 15:14:48.442 SomeApp[15058:a0b]-[UIViewController>tableView:numberOfRowsInSection:]:无法识别的选择器发送到实例 0x8d42450 2013-10-10 15:14:48.450 SomeApp [15058:a0b] *** 由于未捕获的异常 >'NSInvalidArgumentException' 而终止应用程序,原因:'-[UIViewController >tableView:numberOfRowsInSection:]:无法识别的选择器发送到实例 0x8d42450'
【问题讨论】:
【参考方案1】:确保您的视图控制器遵循正确的协议:
CustomViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
并将这些协议中的必要方法添加到您的实现中。这些是为您提供方便的文档链接:
UITableViewDelegate Protocol Reference
UITableViewDataSource Protocol Reference
【讨论】:
我已将其添加到 ViewController.h 中作为 `@interface ViewController : UIViewController您缺少一些表格视图工作所需的方法,
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
更多信息UITableViewDataSource Protocol Reference
【讨论】:
是的,我确实在 ViewController.m 中实现了它们(除非我需要在 .h 文件中添加定义)。我想知道是否需要为 ViewController 创建一个新类?以上是关于使用 TableView 向视图控制器添加导航的主要内容,如果未能解决你的问题,请参考以下文章