我的应用程序中有一个TableViewController(有几个,但这只发生在这个特定的一个)。
使用NSFetchedResultsController从Core Data驱动内容,TVC是NSFetchedResultsControllerDelegate,并使用这些方法根据内容更改更新表(即运行beginUpdates,endUpdates等...)。
我以前做了很多次,所以只使用相同的代码。 (也可以在Ray Wenderlich的网站上找到。)
无论如何,我有一个视图(从TVC推出),它将新项目添加到CoreData DB中。然后应将此新项目添加到TVC的表格中。
这一切都很好。我查看表格向上和向下滚动它很好。单击添加。添加新项目。回到TableView,我可以看到新项......
BUT
tableView不允许我现在一直滚动到底部。我可以通过滚动到底部并按住屏幕来查看表中的新数据,但是当我放开时,tableView会反弹,以便我再也看不到它了。
我检查了几件事......
如果我回到rootVC然后再回到TVC那么我可以再次滚动并看到我所有的新单元格。
我做了一些测试。
如果我使用- (BOOL)shouldAutorotate
重新启用autoRotating,那么请完成添加新单元格等的动作,然后我仍然无法滚动到底部。但是,如果我旋转风景然后回到肖像,那么现在我可以一直滚动到底部。
在我的背后,我尝试在[self viewWillLayoutSubViews];
之后运行[self.tableView endUpdates];
方法,但仍然没有。
就像我说的那样,我已经多次这样做了,没有任何问题。我真的不明白现在发生了什么。
答案 0 :(得分:0)
我终于找到了一个有效的解决方案!
最后,我必须将[self.tableView reloadData];
放入viewDidAppear
方法。
解决了这个问题。