0

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

现在我想实现我自己的删除控制。我在我的 UITableViewCell 子类中添加了一个 UIPanGesture ,这样当您平移一个单元格时,会显示一个删除按钮,该按钮会在单元格被刷出时移入(类似于 iOS 7 邮件应用程序或清除应用程序中的那个)。通过自定义协议,具有 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)的指针。如何删除单元格?

4

1 回答 1

0

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

于 2013-07-22T16:18:17.297 回答