我正在尝试将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只是截取网页的截图(?),因为滚动标签时没有启用互动,但如果你想保留互动,你会怎么做呢?
更新2
特定行似乎是CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]
其中static NSString *CellIdentifier = @"New Cell"
(并且在IB中定义了适当的原型UITableViewCell)。但是,代码似乎没有在此行崩溃;相反,似乎启动了一个断点(Thread 1: Breakpoint 1.1
),我没有指定。此外,这仅在我的iOS设备上进行测试时才会发生。通过iOS模拟器进行测试时,一切正常。
答案 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?
由于这个特殊问题含糊不清,而“答案”与我认为的问题无关,我应该投票删除吗?