#ios #xcode #controller #navigation #back-button
#iOS #xcode #контроллер #навигация #кнопка возврата
Вопрос:
Я хочу сохранить базу данных при нажатии кнопки «Назад» в контроллере навигации.
поэтому я бы вставил код в метод.
Какой метод вызывается при нажатии кнопки «Назад» в контроллере навигации?
Комментарии:
1. Используйте переменную флага. Если DB не обновлен, то updated-DB в методе viewWillDisappear. Это должно сработать.
Ответ №1:
Чтобы выполнить то, что вы просили, посмотрите на UINavigationControllerDelegate
протокол, а именно метод:
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
когда аргумент ViewController больше не является вашим контроллером просмотра, вам следует сохранить.
Однако это viewWillDisappear:
может быть лучшей (и намного более простой) идеей.
Ответ №2:
Возможно, это неуместное использование, но это сработало для меня. Не забудьте установить делегат 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;
}