NSFetchedResultsController 和 UITableView 动画问题

Posted

技术标签:

【中文标题】NSFetchedResultsController 和 UITableView 动画问题【英文标题】:NSFetchedResultsController and UITableView animation issue 【发布时间】:2011-09-21 00:41:44 【问题描述】:

我在使用 NSFetchedResultsControllerUITableView 时遇到了视觉问题。我发现 Apple 的 iPhoneCoreDataRecipes 示例代码也存在同样的问题。我正在寻找解决方法。

在 iPhoneCoreDataRecipes 中,UITableView 显示食谱列表。有一个“添加”按钮,可将新配方对象插入托管对象上下文,然后以模态方式呈现视图控制器以编辑该新对象。

新配方对象的插入导致NSFetchedResultsController 更新表。当用户点击“添加”按钮时,会在表格视图中插入一个空行(并出现一个行插入动画),同时显示新的模态视图控制器。在我看来它很草率。我宁愿在模态视图控制器被解除之前新行不出现。

如果有任何建议,我将不胜感激。

【问题讨论】:

【参考方案1】:

如果您使用单独的托管上下文来编辑对象,问题就会消失。因此,在您的模态控制器中创建一个新上下文并将其分配给共享持久存储。然后,在关闭模态视图控制器之前,这将不会通知获取的控制器任何添加,此时您应该在主托管上下文上执行“保存”然后“合并”。

【讨论】:

以上是关于NSFetchedResultsController 和 UITableView 动画问题的主要内容,如果未能解决你的问题,请参考以下文章

在 Core Data 应用程序中调用 performFetch 后,是不是需要手动更新表视图?