Рекомендованный способ сделать это - использовать делегата от вашего модального контроллера представления обратно в контроллер представления, который открыл представление.Ознакомьтесь с официальными документами для примеров.
Причина, по которой это рекомендуемый способ, заключается в том, что ViewController, который первоначально запустил модал, также будет контролировать его отклонение.
Это действительноэто просто сделать и думать более элегантно, чем использовать viewWillDisappear - поскольку есть и другие причины, по которым представление может исчезнуть!
создать протокол на модальном ViewController - xViewControllerDelegate
@protocol xViewControllerDelegate
- (void) modalDialogFinished;
@end
Затем сделать родителяреализуйте делегат, используя <xViewControllerDelegate>
при определении вашего родительского контроллера представления.
Вы будете вынуждены иметь метод modalDialogFinished в вашем родительском контроллере представления - который может обрабатывать команду dismiss, обновление и т. д.
Не забудьте передать id<xViewControllerDelegate>
в контроллер модального вида в вашем коде инициализации и сохранить его как поле на объекте.
Если вы хотите отменить свое модальное представление, тогда вам просто нужно сослатьсяthe делегат.modalDialogFinished.
Если это не такТогда я могу указать вам на лучший пример кода, но я надеюсь, что использование делегатов не ново для вас.
ОБНОВЛЕНИЕ ::
Вот официальная документация Apple о том, как это сделать.это для контроллера модального вида:
http://developer.apple.com/iphone/library/featuredarticles/ViewControllerPGforiPhoneOS/ModalViewControllers/ModalViewControllers.html