Как сказать, когда кнопка возврата нажата в UINavigationControllerStack
Можно ли проверить, нажата ли кнопка "Назад" в стеке UINavigationController? Я попытался добавить действие и цель в self.navigationItem.backBarButtonItem безрезультатно.
У кого-нибудь есть какие-либо решения?
Ответы
Ответ 1
Вы можете попробовать:
Напишите в вашем ViewController:
UIBarButtonItem *backBt = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"imageNameOfBackButton"] style:UIBarButtonItemStyleBordered target:self action:@selector(backBt_touch:)];
self.navigationItem.leftBarButtonItem = backBt;
И метод действия:
- (void)backBt_touch:(id)sender {
[self.navigationController popViewControllerAnimated:YES];
}
Вам нужно сделать снимок, который вы хотите.
Анимация скрытой кнопки при появлении viewController - это не та же анимация iOS!
P/s:
Я получаю его от симулятора. Надеюсь, это полезно!:)
Ответ 2
Один из способов добиться этого - переопределить viewWillDisappear
в UIViewController, который будет отображаться при нажатии кнопки "Назад":
- (void)viewWillDisappear:(BOOL)animated {
if (self.isMovingFromParentViewController) {
// handle back button press
}
}
Очевидно, это не напрямую перехватывает прессу на самой задней кнопке, но дает вам возможность выполнить логику в это время.