偶尔没有调用UITableView cellForRowAtIndexPath?

时间:2010-05-20 16:36:18

标签: iphone objective-c uitableview uinavigationcontroller reloaddata

我正在开发一个图形应用程序,它在主导航/选项卡视图中显示一个使用openGL渲染图形的UIView。在该视图下方是一个UITableView,它显示图表上的元素列表和一个添加按钮。

有时,当用户单击另一个选项卡,然后返回到图表视图选项卡时,表视图不会重新绘制。

我在导航控制器中调用[tableView reloadData]方法(也是表视图的委托和数据源)viewDidAppear方法。

调用numberOfSectionsInTableView和numberOfRowsInSection,但是尽管后两种方法都返回正值,但是cellForRowAtIndexPath没有。

这是一个间歇性的问题,只在某些时候发生,但目前尚不清楚(如果有的话)会对此产生什么影响。

有没有人有任何想法?

[编辑]应该快速添加;单击或以其他方式与表视图交互,无论是否出现故障,始终会使其成功重绘。

[再次]更多信息;当它如上所述出错并且调用前两个而不是cellforRowetc方法时,似乎要等到用户在最终调用cellForRowetc之前与表交互(前两个方法不被调用)并重新绘制。

1 个答案:

答案 0 :(得分:0)

我有一个UIActivityIndi​​cator,在一个单独的线程上启动,显示何时向Web服务发出请求。完成Web服务调用后,会向图控制器类发送通知以停止和隐藏UIActivityIndi​​cator。在这个方法中,无论视图是否可见,都在表上调用reloadData,这似乎导致了问题。

结论似乎不是在表上调用reloadData,除非它可见。