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