iPhone:TabView + 表格视图
我认为我错过了一些简单的东西,但我无法弄清楚它到底是什么。
我正在尝试使用 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 加载选项卡时,我无法分配数据源而不崩溃。 我应该怎么做才能将数据放入此表中,无论是在 IB 中还是在代码中? 我的想法如下:
- 实现自定义 UITableView 类,连接到 IB 中的表视图或 Xcode 中的自定义 tableviewcontroller。
- 将头或笔记本电脑靠在墙上,直到其正常工作。
更新: 这是当我连接 Tableview 的数据源并委托给文件所有者(谁的类是我的自定义 tableviewcontroller)时模拟器推送到控制台的错误。
2/14/09 6:59:12 PM TabBarWillbeRight[33172] * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“* -[UIViewController tableView:numberOfRowsInSection:]: 无法识别选择器发送到实例0x523760
I think I'm missing something simple, but I can't figure out exactly what it is.
I'm trying to set up an App with a UITabViewController
, and one of the Tabs will have a UITableView and UISearchBar (but no Navigation Controller). I set up the UITabViewController
with all the tabs in interface builder, and the views are in their own xib files. The xib file for the tab with the UITableView
is set up and connected as follows.
Stuff in the browser:
File's owner (Class is my custom class that is a child of UITableViewController) view -> View
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)
This setup displays all the items and doesn't lock up, but I can't assign a DataSource without it crashing when i try and load the tab with the UITableView. What should I do to get data into this table, either in IB or code? My ideas are as follows:
- Implement custom UITableView class, hook up to table view in IB or to custom tableviewcontroller in Xcode.
- Pound head or laptop against the wall until it works.
Update:
Here's the error the simulator pushes to the console when I connect the Tableview's data source and delegate to File Owner (who's class is my custom tableviewcontroller).
2/14/09 6:59:12 PM TabBarWillbeRight[33172] * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '* -[UIViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x523760
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我遇到了类似的问题,并显示相同的错误消息。 简单的解决方案是单击 IB 中 TabBarController 中的视图(灰色矩形,上面写着“视图加载自..”),并将元素的类更改为我的 TableViewController 的类名。
I had a similiar Issue with the same error message. The simple solution was to click at the View in the TabBarController (The grey rectangle which says "view loaded from..") in IB and change the class of the element to the classname of my TableViewController.
我有同样的问题。
1. 确保您的视图实现了数据源方法
2. 在 IB 中,将视图的类标识设置为实现数据源方法的类。
3.右键单击IB中的视图并检查数据源是否连接到文件所有者,而不是视图
I had the same problem.
1. Make sure your View implements the datasource methods
2. In IB, set the the Class identity for your view to the class which implements the datasource methods.
3. Right click on the view in IB and check the datasource is hooked up to Files Owner, not View
如果您无法在不崩溃的情况下分配数据源,则表明某些数据源委托方法尚未实现。
特别是您指定为数据源的类应该实现 UITableViewDataSource
If you can't assign the DataSource without it crashing, then that suggests that some of the the DataSource delegate methods have not been implemented.
In particular the class you are assigning as the data source should implement UITableViewDataSource
您确定您的类实现了 UITableViewDelegate 和 UITableViewDataSource 类吗? 另请检查视图控制器的声明。 你的 .h 文件应该是这样的
其他一切似乎都已就位。 如果类声明没有指定它实现 UITableViewDelegate 和 DataSource,那么一旦设置数据源就会出现异常。
Are you sure your class implements UITableViewDelegate and UITableViewDataSource classes? Also check the declaration of your viewcontroller. Your .h file should be something like this
Everything else seems to be in place. If the class declaration does not specify that it implements UITableViewDelegate and DataSource, you will get the exception as soon as you set the datasource.