开发者

Popping ViewController doesn't call viewWillAppear when going back

开发者 https://www.devze.com 2023-03-23 18:50 出处:网络
Whenever I pop a view controller manually, viewWillAppear doesn\'t get called on the previous UIViewController that now appears.

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

0

精彩评论

暂无评论...
验证码 换一张
取 消