Какой метод вызывается при нажатии кнопки «Назад» в контроллере навигации? - PullRequest
10 голосов
/ 31 октября 2011

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

чтобы я вставил код в метод.

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

Ответы [ 2 ]

8 голосов
/ 31 октября 2011

Чтобы сделать то, что вы просили, посмотрите протокол UINavigationControllerDelegate, а именно метод:

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated 

когда аргумент viewController больше не является вашим контроллером представления, вам следует сохранить.

Однако сделать это на viewWillDisappear: может быть лучше (и гораздо проще).

1 голос
/ 27 июня 2014

Может быть, это неуместное использование, но это сработало для меня. Не забудьте установить делегат 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;
}
...