Какой метод вызывается при нажатии кнопки "Назад" в навигационном контроллере?

Я хочу сохранить DB, когда кнопка "Назад" нажата в навигационном контроллере.

поэтому я бы вставил код в метод.

какой метод вызывается при нажатии кнопки "Назад" в навигационном контроллере?

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;
}