Which method is called when back button clicked in

2019-02-16 15:30发布

问题:

I want to save DB when the back button clicked in navigation controller.

so I would insert code in method.

What method is called when back button clicked in navigation controller?

回答1:

To do what you asked, look at the UINavigationControllerDelegate protocol, namely the method:

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

when the viewController argument is no longer your view controller then you should save.

However, doing so on viewWillDisappear: might be a better (and much simpler) idea.



回答2:

Maybe it's not appropriate use, but that worked for me. Don't forget to set UINavaigationController delegate.

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