UITableView的单元格无法加载时的调试策略?

时间:2012-10-24 06:01:23

标签: objective-c cocoa-touch uitableview subview

我正在尝试将UITableView嵌入到我的ViewController的主UIView中,该UIView是屏幕宽度的75%。理想情况下,此UITableView也将嵌入到导航控制器中。此外,我似乎无法在iOS 5中使用UIContainerViews,因为我遇到错误“无法实例化名为UIStoryboardEmbedSegueTemplate的类”(参见NSInvalidUnarchiveOperationException with ContainerView)。

为此,我在ViewController的主UIView中创建了一个UIView,它是屏幕宽度的75%。在UIView中,我放置了一个UINavigationBar和一个UITableView。我在ViewController的- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil函数中实例化UITableViewController。实例化后,我通过self.tableViewController.tableView = self.tableView将我的ViewController的UITableView连接到UITableViewController的UITableView。

除非我的UITableView没有显示任何单元格,即使我用数据预加载它,一切似乎都能正常工作。

我可以提供哪些其他数据来帮助诊断问题?我当然没有收到任何错误消息,数据源确实收到了数据,我在数据源更新后调用了[self.tableView reloadData]

更新1

Chrome for iOS

最终这是我想要的行为,除了我想要多个网页视图而不是多个网页视图,每个视图都嵌入在自己的导航控制器中。我猜测Chrome for iOS只是截取网页的截图(?),因为滚动标签时没有启用互动,但如果你想保留互动,你会怎么做呢?

更新2

特定行似乎是CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]其中static NSString *CellIdentifier = @"New Cell"(并且在IB中定义了适当的原型UITableViewCell)。但是,代码似乎没有在此行崩溃;相反,似乎启动了一个断点(Thread 1: Breakpoint 1.1),我没有指定。此外,这仅在我的iOS设备上进行测试时才会发生。通过iOS模拟器进行测试时,一切正常。

2 个答案:

答案 0 :(得分:0)

您的数据源方法需要在tableViewController中实现(您似乎没有这样做)。您必须将tableViewController的datasource属性设置为self并实现原始视图控制器中的方法(即self)。此外,您还必须在@interface声明中添加<UITableViewDataSource, UITableViewDelegate>协议。

获取标准路由和子类UITableViewController以覆盖数据源方法是不是更容易?

答案 1 :(得分:0)

您好:我的特定问题的最终答案与iOS 5 v.iOS 6如何处理自动布局有关,特别是关于UITableViewCells(“自动调整子视图”);参见,What are some reasons why custom UITableViewCells might work in iOS 6 but not iOS 5?

由于这个特殊问题含糊不清,而“答案”与我认为的问题无关,我应该投票删除吗?