我有一系列带有各种UIControl的UITableViewCell元素来设置模型值。
当我对模型进行更改时,我很难找到更新UITableViewCell的方法,该方法显示模型中的计算属性。
我已将模型放在AppDelegate中,并直接从RootViewController访问它。在每个UITableViewCell实现中,我都有一个方法,可以在进行更改时更新模型。
但是,我不知道如何刷新显示以显示更新。 (我尝试将相同的元素连接到两个动作。但是,动作完成的顺序不一致,所以它首先重新加载显示,然后更新模型)。
任何帮助都将受到高度赞赏。
谢谢..
答案 0 :(得分:1)
我尝试将相同的元素连接到 两个动作。但是,顺序在哪 行动完成不是 一致,所以它首先重新加载 显示,然后更新模型
尝试仅使用一个操作,首先更新模型,完成后再更新显示。在我看来,你的问题是同步这两个,所以我建议在你的模型更新功能之后调用显示更新函数。
答案 1 :(得分:0)
如果您正在使用NSFetchedResultsManager,则很容易实现UITableViewController的委托回调。具体做法是:
- (void)controllerWillChangeContent:(NSFetchedResultsController *)controller;
- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath *)newIndexPath;
- (void)controller:(NSFetchedResultsController *)controller didChangeSection:(id <NSFetchedResultsSectionInfo>)sectionInfo atIndex:(NSUInteger)sectionIndex forChangeType:(NSFetchedResultsChangeType)type;
- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller;
请参阅RootViewController示例中的Core Data Books了解实施情况。
通过这种方式,您不会完全重新加载数据,而只是修改已更改的部分。