Где мне «сохранить» изменения в моем представлении iPhone, чтобы «создать новый» объект? - PullRequest
3 голосов
/ 18 ноября 2010

У меня есть представление, которое создает новый управляемый объект базовых данных, заполняет все необходимые свойства, а также допускает необязательные свойства.Первоначально у меня была кнопка «Готово» в левом верхнем углу, и когда она была нажата, я проверил объект, затем сохранил и удалил вид.

Теперь у меня есть настройка типа редактирования / готово в правом верхнем углупоэтому иногда в верхней части окна отображаются две одинаковые кнопки «Готово».Я хочу переключить левую боковую кнопку так, чтобы она просто имела обычную кнопку «Назад», затем каким-то образом подтвердить и остановить удаление представления, если оно не подтверждается.Я не могу найти способ перехватить метод, вызванный этой кнопкой назад, и изменить его, и viewWillDisappear не работает, потому что нет способа отменить исчезновение.

Как я могу заставить эту работу?Мне нужно проверить это, затем сохранить, затем удалить представление, если проверка и сохранение работали только.

Ответы [ 2 ]

1 голос
/ 18 ноября 2010

Похоже, что ваш взгляд является идеальным кандидатом для проталкивания модально, а не через стек контроллера навигации.

Нажмите представление, которое создает ваш NSManagedObject модально:

[self presentModalViewController:yourViewController animated:YES]

Затем продолжайте использовать верхнюю правую кнопку EDIT / DONE для редактирования / проверки, как вы в настоящее время и когда проверка прошла успешно, просто сохраните ваш объект и удалите модальный контроллер представления из родительского контроллера представления:

[[self parentViewController] dismissModalViewControllerAnimated:YES];

Для более подробной информации проверьте http://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/ModalViewControllers/ModalViewControllers.html#//apple_ref/doc/uid/TP40007457-CH111-SW14

Если вы все еще хотите использовать кнопку с левой стороны, возможно, вы можете изменить правую кнопку на «Редактировать / Отменить» и добавить кнопку «Готово» на левой стороне, которая видна только тогда, когда вы не находитесь в режиме «Редактировать». Если необходимо, вы можете указать кнопке «ГОТОВО» выполнить тот же процесс проверки, прежде чем закрыть модальное представление, используя приведенный выше код, но, вероятно, имеет смысл, что кнопка EDIT / CANCEL позаботится об этом.

Надеюсь, это поможет. Рог

1 голос
/ 18 ноября 2010

Нет задокументированного способа перехватить стандартную кнопку возврата UINavigationController.Если вы хотите эту функцию, единственным вариантом будет настроить leftBarButtonItem с помощью пользовательской кнопки.

Когда пользователь нажимает эту кнопку, вы можете сначала подтвердить свой объект, а затем вызвать popViewControllerAnimated:.

Однако сложно имитировать внешний вид встроенной кнопки «назад».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...