viewDidAppear未调用,但viewWillAppear调用仅出现在iOS5中

时间:2011-10-18 14:20:16

标签: iphone uiviewcontroller uinavigationcontroller uitabbarcontroller ios5

我使用的视图控制器包含tabbarcontroller(4个选项卡)。 每个标签栏都有一个导航控制器。

我的问题是viewcontroller,它在导航控制器中用于viewDidAppear在viewWillAppear调用时不调用?

它在iOS4.x中运行良好,但这种情况出现在iOS5中。


viewcontroller
    | 
    | 
tabbarcontroller (4 tabs)
    |
    |
uinavigationController (Y)
    |
    |
uiViewcontroller  (X)

在这个'X'控制器中,viewDidAppear不仅仅在iOS 5中调用,而是在iOS44.x中调用?


我试试

在'Y'中我使用

- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    [viewController viewDidAppear:animated];
}

它只会一次运行'X'viewDidAppear。

每当视图出现时我都需要它。

请帮忙 感谢

2 个答案:

答案 0 :(得分:0)

您可以设置UITabBarController的delegate属性并响应didSelectViewController:方法以适当地调用viewController(X)上的代码。

答案 1 :(得分:0)

我知道你可以制作一个uitabbarcontroller然后隐藏tabbar然后当你切换视图控制器然后只删除隐藏的属性..然后这样的问题将不会显示我想是这样.....