В настоящее время я работаю над приложением, в котором хранятся следы кошек и связанных с ними чизбургеры. Я поддерживаю приложение с помощью Core Data. Существует взаимосвязь «один ко многим» между кошкой и ее чизбургеры (кошке разрешено иметь ноль или более чизбургеры).Каков стандартный способ отмены отмены редактирования на экране отображения деталей товара?
У меня есть UITableViewController, который отображает всех кошек по имени (фамилия, имя). Когда вы нажимаете на строку в таблице, новый контроллер UITableViewController вводится в навигационный контроллер, который отображает всю информацию о кошке. Для чего стоит табличное представление сгруппировано с первой секундой, содержащей информацию о кошке (имя/фамилия, цвет и т. Д.). Затем во втором разделе описываются все гамбургеры с сыром, которые есть у кошки.
Правым элементом навигации является кнопка редактирования. Когда пользователь находится в режиме редактирования, я скрываю кнопку назад на панели навигации, заменяя ее кнопкой отмены.
Мой вопрос заключается в следующем: существует ли стандартная/распространенная практика/и т. Д., Как обрабатывать управление данными на экране редактирования? Я вижу, что это происходит один из двух способов:
- Отслеживай все вещи изменения пользователя, а затем, когда они нажмут кнопку
done
, скопировать эти изменения вCat
NSManagedObject
. - Используйте
NSUndoManager
, связанный сNSManagedObjectContext
, и когда пользователь начнет редактирование, создайте новую группу отмены. Когда они нажимают кнопку отмены, просто завершите группировку, а затем выполните отмену наNSUndoManager
.
Я чувствую, что вариант 2 кажется наиболее практичным, но у меня смешанные чувства по этому поводу. Для iPhone NSManagedObjectContext
по умолчанию не имеет связанного с ним связанного NSUndoManager
- я читал, что он предназначен для приложений OSX. Я также не вижу большого обсуждения об использовании NSManagedObjectContext
в отношении программирования iPhone при чтении в сети. Это заставляет меня чувствовать, что люди могут использовать другой метод, о котором я не думал.
Я предполагаю, что этот навык также упростит мою жизнь. Не знаю, почему это не произошло со мной. – Anthony