2010-09-22 2 views

ответ

0

Прежде всего, я не пробовал это сам. Я не знаю, как перехватить щелчок по кнопке. Что «может» работать, так это: UINavigationBarDelegate, в котором содержится navigationBar: shouldPopItem: event. Это событие вызывается до удаления элемента навигации из стека вашего навигационного блока, поэтому, если вы обрабатываете это событие, вы можете делать все, что хотите архивировать.

+1

ОП не указывает, используют ли они навигационный контроллер или нет. Если нет, предложение Флиббо является хорошим; однако, если есть задействованный контроллер навигации, я не думаю, что подключение к делегату на панели навигации - хорошая идея, так как это, вероятно, сломает навигационный контроллер. В этом случае возможным вариантом будет использование метода navigationController: willShowViewController: анимированный: в UINavigationControllerDelegate. – Echelon

0

«Обработка событий до» предлагает вам очистить или сохранить состояние до того, как пользователь покинет представление. В этом случае я бы использовал viewWillDisappear: или viewDidDisappear :. Если вам необходимо провести различие между навигации назад и навигации «вперед» (например, нажатием VC, или представление модальное VC), вы может быть в состоянии сделать что-то вроде:

-(void)viewDidDisappear:(BOOL)animated 
{ 
    if (!self.parentViewController) 
    { 
    // back button pressed/modal VC dismissed/etc, hopefully 
    } 
} 

Я не проверял это , но я понимаю, что методы «Воля» вызывают до изменения иерархии VC, а затем - «Методы» - «Методы».

Если вы сохраняете состояние, вы также должны обрабатывать UIApplicationWillEnterBackgroundNotification.

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