如果我有一个必须删除的UITableViewCell的引用,我该如何从NSFetchedResultsController中删除它?

时间:2013-07-22 15:59:35

标签: ios uitableview nsfetchedresultscontroller

我已经实现了一个NSFetchedResultsController,并且我已经通过滑动显示的删除按钮成功实现了行删除(这是UITableView中的标准控件,而不是我自己制作的标准控件)。我通过覆盖- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath完成了这项工作,以便删除单元格引用的核心数据数据库中的实体。

现在我想实现自己的删除控件。我已经在我的UITableViewCell子类中添加了一个UIPanGesture,这样当你平移一个单元格时,会显示一个删除按钮,当该单元被刷出时它会移入(类似于iOS 7邮件应用程序或Clear应用程序)。通过自定义协议,具有NSFetchResultsController的视图控制器将重新按下已按下自定义删除按钮的单元格。有了这个,我可以通过对需要删除的单元格NSIndexPath *indexPath = [self.tableView indexPathForCell:cellToDelete]; 来计算indexPath。唯一的问题是:如何删除此单元格?

UITableView有deleteRowsAtIndexPaths: withRowAnimation:方法。据我所知,NSFetchResultsController没有这样的方法。我想我需要的是- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath以某种方式被调用,因为我已经在那里实现了删除。

摘要:在UIViewController中,我有一个NSFetchedResultsController和一个指向需要删除的单元格(以及它的indexPath)的指针。如何删除单元格?

1 个答案:

答案 0 :(得分:0)

FRC由Corw Data模型的内容驱动,因此,您需要删除与该行关联的模型对象,FRC将获取更改(它正在观察数据存储)并从中删除单元格表格视图。