Какой метод вызывается при нажатии кнопки "Назад" в контроллере навигации?
Я хочу сохранить БД, когда в навигационном контроллере нажата кнопка "Назад".
поэтому я бы вставил код в метод.
Какой метод вызывается при нажатии кнопки "Назад" в контроллере навигации?
2 ответа
Решение
Чтобы сделать то, что вы просили, посмотрите на UINavigationControllerDelegate
протокол, а именно метод:
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
когда аргумент viewController больше не является вашим контроллером представления, вам следует сохранить.
Тем не менее, делая это на viewWillDisappear:
может быть лучше (и гораздо проще).
Может быть, это неуместное использование, но это сработало для меня. Не забудьте установить делегат UINavaigationController.
- (id <UIViewControllerAnimatedTransitioning>)navigationController:(UINavigationController *)navigationController
animationControllerForOperation:(UINavigationControllerOperation)operation
fromViewController:(UIViewController *)fromVC
toViewController:(UIViewController *)toVC
{
NSLog(@"from VC class %@", [fromVC class]);
if ([fromVC isKindOfClass:[ControllerYouJustPopped class]])
{
NSLog(@"Returning from popped controller");
}
return nil;
}