我有一个基于nib的UITableViewController,它在iPad上运行时呈现在UIPopoverController中,并在iPhone上运行时呈现“原生”。
在iPad上运行时,控制器的self.tableView属性在整个生命周期内都是零。作为正常操作的一部分在tableView中传递的委托消息可以正常工作并具有对表视图的引用。
在iPhone上,设置属性并且引用有效。正如您所期望的那样。
任何可能导致self.tableView属性为nil的特定内容?我已经仔细检查了Interface Builder中的连接 - Nib只包含一个表视图和相关的UISearchBar。 Nib中的表视图被设置为视图控制器的视图。
这是在两台设备上的4.2.1。在这方面敲我的头,找不到我的错误。
答案 0 :(得分:6)
我发现了我的问题,当然,这是一个编程错误。
在这种情况下,实现文件顶部的错误的@synthesize tableView会生成冲突的getter和setter。
道歉并感谢那些关注此事的人。
答案 1 :(得分:0)
尝试这个...在返回tableView对象的其中一个方法中执行“assert(self.view == tableView);”看看会发生什么。如果断言没有触发,我怀疑它不会在iPhone或iPad中触发,那么只需将self.view转换为UITableView并执行您需要做的事情。