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

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

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

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

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;
}
Другие вопросы по тегам