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 等