I want to perform a action when the user pressed the back button on my UINavigationController
when arrived at a certain UIViewController
.
Unfortunately it looks like UINavigationControllerDelegate
doesn't have any methods to get notified of the popping of views.
As a workaround I now have in the viewDidDisappear
method my action, that only gets fired when animated
is YES
. This works, but it's a bit ugly.
How should I do this properly?
The most popular way of handling a pop from navigation view controller (as well as from modal) is implementing viewWillDisappear
for your view controller.
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
if (self.isMovingFromParentViewController || self.isBeingDismissed) {
// This view controller is being popped or dismissed
}
}
If you have a reference to the controller down the stack, the one which will show when this one is popped, you can register as a delegate and check it through
navigationController:willShowViewController:animated:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With