【发布时间】:2012-02-03 06:14:16
【问题描述】:
我有一个标准的 CoreData/NSFetchedResultsController/UITableView 设置。顶部没有编辑按钮,但向右滑动一行将显示删除按钮。如果按下删除按钮,我想弹出一个 UIActionSheet 来确认删除。
在 UIActionSheet 之前,我刚刚实现了tableView:commitEditingStyle:forRowAtIndexPath:,并在其中为 indexPath 调用了 managedObjectContext 上的deleteObject:,并让 FetchedResultsController 覆盖处理它的视觉方面。
现在,我有 tableView:commitEditingStyoe:forRowAtIndexPath: 创建 UIActionSheet 并显示它。我实现了actionSheet:clickedButtonAtIndex: 并将deleteObject: 放在按下删除按钮的情况下。问题是我需要删除项目的 indexPath 并且它不再在范围内。
我...
A) 删除tableView:commitEditingStyle:forRowAtIndexPath: 中的ManagedObject 并在actionSheet:clickedButtonAtIndex: 中保存或回滚?
B) 将索引路径存储为属性,以便我可以在tableView:commitEditingStyle:forRowAtIndexPath: 中设置它并在actionSheet:clickedButtonAtIndex: 中读取它?
C) 别的东西……
选项 A 似乎比必要的开销更大。无论哪种方式,它都会被删除,只是有时会被回滚。
选项 B 似乎非常鹰派。像这样的外部值似乎不太适合面向对象的模型。
UIActionsSheet 中是否有一个通用对象用于传递这样的值?还是我还缺少其他东西?
【问题讨论】:
标签: ios uitableview cocoa-touch nsfetchedresultscontroller uiactionsheet