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

Posted

技术标签:

【中文标题】viewDidAppear 未调用但 viewWillAppear 调用仅出现在 iOS5【英文标题】:viewDidAppear not called but viewWillAppear called only appear in iOS5 【发布时间】:2011-10-18 14:20:16 【问题描述】:

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

我的问题是在 viewDidAppear 调用时 viewDidAppear 没有调用的导航控制器中使用的 viewcontroller?

它在 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。

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

请帮忙 谢谢

【问题讨论】:

在你的viewWillAppear中,你是否调用[super viewWillAppear],如果没有,你应该是。 我已经检查了超级也同样的结果来了.. 【参考方案1】:

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

【讨论】:

【参考方案2】:

我觉得你可以制作一个 uitabbarcontroller 然后隐藏标签栏然后当你切换视图控制器然后删除隐藏属性..然后这样的问题不会显示我想这样.....

【讨论】:

以上是关于viewDidAppear 未调用但 viewWillAppear 调用仅出现在 iOS5的主要内容,如果未能解决你的问题,请参考以下文章

viewWillAppear 调用但 viewDidAppear 在 pushViewController 之后未调用

iPhone 抖动问题:加载 viewController 时未调用 viewDidAppear

UITableViewController 未调用 viewWillAppear、viewDidAppear 等

未调用 viewDidLoad 和 ViewDidAppear

关闭模式视图时未调用 ViewDidAppear

在 iPad 上未调用 viewDidAppear 和 viewWillAppear