viewWillAppear 在 4.3 中没有从 UITabBarController 启动,但在 5.0 中可以正常工作

Posted

技术标签:

【中文标题】viewWillAppear 在 4.3 中没有从 UITabBarController 启动,但在 5.0 中可以正常工作【英文标题】:viewWillAppear not fired up from UITabBarController in 4.3 but works fine in 5.0 【发布时间】:2012-01-19 22:15:58 【问题描述】:

是的,我知道通过调用 UITabBarController 不是一个好主意

[self presentModalViewController: animated];

我有隐藏的原始 TabBar 和我自己的 TabBar 的自定义 UITabBarController。我使用这个控制器来选择例如 iTunes 中的歌曲——按歌手、按专辑、按其他方式。然后,当用户从任何选项卡中选择一个时,我会关闭此模式视图控制器并返回主视图。

我开始使用模拟器 ios5 进行开发,一切都很好 - viewWillAppear 在我从 tabbarcontroler [self setSelectedIndex:X] 调用的所有选项卡 tableviewcontrollers 中启动;

但后来我尝试在 4.3 模拟器和设备中运行我的代码,发现 viewWillAppear 根本没有在我的选项卡中启动。

我该如何解决这个问题?谢谢

更新:我使用[self presentModalViewController: animated]; 来调用新的UIViewController *controller,在那里我启动了UITabBarController 并将它的视图放置为子视图。 [controller.view addSubview:myTabBarController.view];

【问题讨论】:

【参考方案1】:

在您的UIViewController 中,添加以下内容:

- (void)viewWillAppear:(BOOL)animated 
   [super viewWillAppear:animated];
   [myTabBarController viewWillAppear:animated];

【讨论】:

我会尝试,但我担心在 iOS 5 的情况下我的视图会收到 viewWillAppear 两次。 好吧,如果是这种情况,请告诉我,我们会考虑另一种解决方案

以上是关于viewWillAppear 在 4.3 中没有从 UITabBarController 启动,但在 5.0 中可以正常工作的主要内容,如果未能解决你的问题,请参考以下文章

知道 -viewWillAppear 何时触发但 -viewWillDisappear 尚未触发

popviewcontroller 没有调用 viewWillappear

viewWillAppear 没有在 UIPageViewController 孩子上被调用

UIKit 错误? viewWillAppear 在应该被调用时没有被调用 [关闭]

从 `ViewWillAppear` 触发 `TableViewCell` 函数

如果在“viewWillAppear”或“viewDidLoad”方法中完成,视图不会调整大小