为什么UITableViewController self.tableView属性在UIPopoverController中呈现时是否为Nil?

时间:2010-12-06 00:24:01

标签: iphone ios uitableview

我有一个基于nib的UITableViewController,它在iPad上运行时呈现在UIPopoverController中,并在iPhone上运行时呈现“原生”​​。

在iPad上运行时,控制器的self.tableView属性在整个生命周期内都是零。作为正常操作的一部分在tableView中传递的委托消息可以正常工作并具有对表视图的引用。

在iPhone上,设置属性并且引用有效。正如您所期望的那样。

任何可能导致self.tableView属性为nil的特定内容?我已经仔细检查了Interface Builder中的连接 - Nib只包含一个表视图和相关的UISearchBar。 Nib中的表视图被设置为视图控制器的视图。

这是在两台设备上的4.2.1。在这方面敲我的头,找不到我的错误。

2 个答案:

答案 0 :(得分:6)

我发现了我的问题,当然,这是一个编程错误。

在这种情况下,实现文件顶部的错误的@synthesize tableView会生成冲突的getter和setter。

道歉并感谢那些关注此事的人。

答案 1 :(得分:0)

尝试这个...在返回tableView对象的其中一个方法中执行“assert(self.view == tableView);”看看会发生什么。如果断言没有触发,我怀疑它不会在iPhone或iPad中触发,那么只需将self.view转换为UITableView并执行您需要做的事情。