Popping ViewController doesn't call viewWillAppear when going back
Whenever I pop a view controller manually, viewWillAppear
doesn't get called on the previous UIViewController
that now appears.
These are 2 regular UIViewControllers
. My application setup is like this:
- UINavigationController
- UITabViewController with 5 UIViewControllers including UIViewControllerA
-UIViewControllerA (When I get back here, viewWillAppear doesnt get called)
-UIViewControllerB (I'm here, I want to pop to A)
I've tried calling viewWillAppear
manually, but that doesn't help either. What could be wrong? My last resort will be popping B, and A, and then creating 开发者_开发知识库a new A, and pushing that, but that's only as a last resort(I assume this will work?)
You cannot have a UITabBarController
"inside" of a UINavigationController
. That's probably why some of the viewWillAppear
methods aren't being called. Take a look here:
Tab bar controller inside a navigation controller, or sharing a navigation root view
I have created this class that solves your problem. I have used it in many of my own projects.
Just set it as a delegate of your navigation controller, and implement simple one or two methods in your view controller - that will get called when the view is about to be shown or has been shown via NavigationController
Here's the GIST showing the code
精彩评论