关于这个主题有很多问题和答案,但我找不到这种情况。
该应用程序已投入生产约3年,因此我确信所讨论的表格视图和所有其他表格视图已正确连接。我添加了一项新功能,但我遇到了一些我没想到的事情。
以下是这种情况:
reloadData:
。numberOfRowsInSection:
并返回正确的行数。 到目前为止,一切都在发挥作用,就像我期待的那样。但那就是它停止的地方。 numberOfRowsInSection:
之后没有别的。 cellForRowAtIndexPath:
未被调用。
显然,我重新加载的表格视图不可见。它在另一个标签上。
这种行为是一种优化,因为表格不可见而导致reloadData
根本没有被执行?谁能证实这一点?
答案 0 :(得分:4)
除了表视图调用numberOfRowsInSection:的部分外,这对我来说非常有意义。当VC不可见时,我不希望这样。
如果表视图不在当前视图层次结构中,则不会绘制。
答案 1 :(得分:1)
正如Duncan所指出的,VC不会重新加载tableView,除非它在当前视图层次结构中。我最近一直在研究一个使用大量KVO来更新tableViews的应用程序,我能想出的最好的解决方案就是通过在viewController上使用属性BOOL needsRedraw将视图标记为脏。然后当在viewController中调用viewWillAppear:时,您应该能够重新加载tableview