2012-01-14 4 views
0

В настоящее время я работаю над приложением, в котором хранятся следы кошек и связанных с ними чизбургеры. Я поддерживаю приложение с помощью Core Data. Существует взаимосвязь «один ко многим» между кошкой и ее чизбургеры (кошке разрешено иметь ноль или более чизбургеры).Каков стандартный способ отмены отмены редактирования на экране отображения деталей товара?

У меня есть UITableViewController, который отображает всех кошек по имени (фамилия, имя). Когда вы нажимаете на строку в таблице, новый контроллер UITableViewController вводится в навигационный контроллер, который отображает всю информацию о кошке. Для чего стоит табличное представление сгруппировано с первой секундой, содержащей информацию о кошке (имя/фамилия, цвет и т. Д.). Затем во втором разделе описываются все гамбургеры с сыром, которые есть у кошки.

Правым элементом навигации является кнопка редактирования. Когда пользователь находится в режиме редактирования, я скрываю кнопку назад на панели навигации, заменяя ее кнопкой отмены.

Мой вопрос заключается в следующем: существует ли стандартная/распространенная практика/и т. Д., Как обрабатывать управление данными на экране редактирования? Я вижу, что это происходит один из двух способов:

  1. Отслеживай все вещи изменения пользователя, а затем, когда они нажмут кнопку done, скопировать эти изменения в CatNSManagedObject.
  2. Используйте NSUndoManager, связанный с NSManagedObjectContext, и когда пользователь начнет редактирование, создайте новую группу отмены. Когда они нажимают кнопку отмены, просто завершите группировку, а затем выполните отмену на NSUndoManager.

Я чувствую, что вариант 2 кажется наиболее практичным, но у меня смешанные чувства по этому поводу. Для iPhone NSManagedObjectContext по умолчанию не имеет связанного с ним связанного NSUndoManager - я читал, что он предназначен для приложений OSX. Я также не вижу большого обсуждения об использовании NSManagedObjectContext в отношении программирования iPhone при чтении в сети. Это заставляет меня чувствовать, что люди могут использовать другой метод, о котором я не думал.

ответ

1

Более распространенный рабочий процесс для iPhone - это вовсе не кнопка «Отмена». Большинство приложений просто превращают кнопку «Редактировать» в кнопку «Готово». Учитывайте только Отмена, когда информация, потенциально потерянная, трудно воспроизвести.

Однако, если вы хотите кнопку «Отмена», первый вариант кажется более упорядоченным. Применить измените на Готово. В любом другом случае просто отбросьте данные о временных изменениях. Сделайте последнее не только на Cancel, но и в случае, если приложение должно завершиться. Принимайте изменения только с явным Done.

+0

Я предполагаю, что этот навык также упростит мою жизнь. Не знаю, почему это не произошло со мной. – Anthony

 Смежные вопросы

  • Нет связанных вопросов^_^