每当我手动弹出一个视图控制器时,就不会在现在出现的前一个viewWillAppear
上调用UIViewController
。
这是2个常规UIViewControllers
。我的应用程序设置如下:
- 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)
我尝试过手动调用viewWillAppear
,但这也无济于事。可能有什么不对?我的最后一招将是弹出B和A,然后创建一个新的A,并推动它,但这只是最后的手段(我认为这会起作用吗?)
答案 0 :(得分:2)
UITabBarController
内无法UINavigationController
“内部”。这可能是为什么没有调用某些viewWillAppear
方法的原因。看看这里:
Tab bar controller inside a navigation controller, or sharing a navigation root view
答案 1 :(得分:1)
它不会被调用,因为视图在导航控制器内部,但我在这里找到了一个解决方案:
http://davidebenini.it/2009/01/03/viewwillappear-not-being-called-inside-a-uinavigationcontroller/
希望有所帮助。
答案 2 :(得分:0)
我创建了解决您的问题的此类。我在许多自己的项目中都使用了它。
只需将其设置为导航控制器的委托,并在视图控制器中实现简单的一个或两个方法-当视图即将显示或已通过NavigationController显示视图时将调用该方法