обработка событий до нажатия кнопки назад - PullRequest
1 голос
/ 22 сентября 2010

Есть ли способ узнать, нажата ли кнопка «Назад» (панель навигации) для определенного вида? если да как?

Ответы [ 2 ]

0 голосов
/ 23 сентября 2010

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

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

Я не проверял это, но, насколько я понимаю, методы "Will" вызываются до изменения иерархии VC, а методы "Did" вызываются позже.

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

0 голосов
/ 22 сентября 2010

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

...