我已经实现了一个 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)的指针。如何删除单元格?