У меня есть стандартная настройка CoreData / NSFetchedResultsController / UITableView. Вверху нет кнопки редактирования, но, проведя вправо по строке, вы увидите кнопку удаления. Если кнопка удаления нажата, я хочу открыть UIActionSheet, чтобы подтвердить удаление.
До UIActionSheet я только что реализовал tableView:commitEditingStyle:forRowAtIndexPath:
, и в нем я вызвал deleteObject:
для managedObjectContext для indexPath и позволил переопределениям FetchedResultsController обработать его визуальный аспект.
Теперь я tableView:commitEditingStyoe:forRowAtIndexPath:
создаю UIActionSheet и показываю его. Я реализовал actionSheet:clickedButtonAtIndex:
и поместил deleteObject:
в случае, когда нажата кнопка удаления. Проблема в том, что мне нужен indexPath элемента для удаления, и он больше не находится в области действия.
Должен ли я ...
A) удалить ManagedObject в tableView:commitEditingStyle:forRowAtIndexPath:
и либо сохранить, либо откатить в actionSheet:clickedButtonAtIndex:
?
B) сохранить путь индекса как свойство, чтобы я мог установить его в tableView:commitEditingStyle:forRowAtIndexPath:
и прочитать его в actionSheet:clickedButtonAtIndex:
?
в) что-то еще ...
Опция A выглядит как дополнительная нагрузка, чем необходимо. В любом случае он будет удален, просто иногда он будет отменен.
Вариант B выглядит очень агрессивно. Такое внешнее значение не очень подходит для объектно-ориентированной модели.
Есть ли в UIActionsSheet универсальный объект для передачи таких значений? Или я что-то пропустил?