10

在我的标签栏中,我有四个视图控制器,其中一个发生的事情会影响另一个的视图,所以当它变得可见时,我可能需要重新加载视图控制器中的一些元素。通常我会通过实现 viewWillAppear 来解决这个问题,但是当我在选项卡之间切换时,viewWillAppear 似乎没有被调用。我该如何解决这个问题,或者我应该怎么做?

更新:作为 PS,我应该补充一点,这是导航控制器层次结构中的选项卡控制器

干杯

尼克

4

4 回答 4

10

您可以使用 tabbar 控制器委托就像一个魅力

-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
    [viewController viewWillAppear:YES];

}
于 2012-06-13T11:11:57.757 回答
1

请在此处查看我的回答

iPhone viewWillAppear 未触发

于 2011-07-26T17:08:32.547 回答
1

如果您发现这个问题是因为您想更新UITabBarController本身的东西,而不是UIViewControllersa 的UITabBarController,就像 OP 的问题一样。例如,隐藏或显示自定义UITabBarButton. 在 Swift 3.0 中,覆盖setNeedsStatusBarAppearanceUpdate我的UITabBarController课程对我有用。

override func setNeedsStatusBarAppearanceUpdate() {

}
于 2017-05-28T02:49:33.033 回答
-1

viewWillAppear应该只在视图出现时使用,而不是用于更新它。

setNeedsDisplay改为在viewController's 视图上使用。

于 2010-07-17T15:52:49.243 回答