我认为我遗漏了一些简单的东西,但我无法确切地知道它是什么。
我正在尝试使用UITabViewController
设置应用程序,其中一个选项卡将具有UITableView和UISearchBar(但没有导航控制器)。我在界面构建器中设置了所有选项卡的UITabViewController
,并且视图位于自己的xib文件中。设置UITableView
选项卡的xib文件如下所示。
浏览器中的内容: 文件的所有者(类是我的自定义类,是UITableViewController的子级)视图 - >图
View (class UIView, reference view -> File's owner) contains:
UITableView (if i try and set references to the data source / delegate, the app breaks)
UISearchBar (unconfigured at the moment)
此设置显示所有项目并且没有锁定,但是当我尝试使用UITableView加载选项卡时,我无法分配DataSource而不会崩溃。如何在IB或代码中将数据导入此表?我的想法如下:
更新: 这是模拟器在连接Tableview的数据源并委托给文件所有者(他的类是我的自定义tableviewcontroller)时推送到控制台的错误。
2/14/09 6:59:12 PM TabBarWillbeRight [33172] *由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'* - [UIViewController tableView:numberOfRowsInSection:]:无法识别选择器发送到实例0x523760
答案 0 :(得分:24)
我遇到了类似错误消息的类似问题。简单的解决方案是在IB中单击TabBarController中的View(灰色矩形,表示“从...加载的视图”),并将元素的类更改为我的TableViewController的类名。
答案 1 :(得分:2)
我遇到了同样的问题。 1.确保您的View实现了数据源方法 2.在IB中,将视图的类标识设置为实现数据源方法的类。 3.右键单击IB中的视图,检查数据源是否连接到文件所有者,而不是查看
答案 2 :(得分:1)
如果你不能在没有崩溃的情况下分配DataSource,那么这表明某些DataSource委托方法尚未实现。
特别是您要分配为数据源的类应该实现UITableViewDataSource
答案 3 :(得分:0)
您确定您的类实现了UITableViewDelegate和UITableViewDataSource类吗?还要检查viewcontroller的声明。你的.h文件应该是这样的
@interface MyClass:UIViewController <UITableViewDelegate,UITableViewDataSource>
其他一切似乎都已到位。如果类声明没有指定它实现UITableViewDelegate和DataSource,那么一旦设置了数据源,就会得到异常。