弹回ViewController在返回时不会调用viewWillAppear

时间:2011-07-28 13:39:28

标签: iphone objective-c uiviewcontroller

每当我手动弹出一个视图控制器时,就不会在现在出现的前一个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,并推动它,但这只是最后的手段(我认为这会起作用吗?)

3 个答案:

答案 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显示视图时将调用该方法

Here's the GIST showing the code