在我的标签栏中,我有四个视图控制器,其中一个发生的事情会影响另一个的视图,所以当它变得可见时,我可能需要重新加载视图控制器中的一些元素。通常我会通过实现 viewWillAppear 来解决这个问题,但是当我在选项卡之间切换时,viewWillAppear 似乎没有被调用。我该如何解决这个问题,或者我应该怎么做?
更新:作为 PS,我应该补充一点,这是导航控制器层次结构中的选项卡控制器
干杯
尼克
在我的标签栏中,我有四个视图控制器,其中一个发生的事情会影响另一个的视图,所以当它变得可见时,我可能需要重新加载视图控制器中的一些元素。通常我会通过实现 viewWillAppear 来解决这个问题,但是当我在选项卡之间切换时,viewWillAppear 似乎没有被调用。我该如何解决这个问题,或者我应该怎么做?
更新:作为 PS,我应该补充一点,这是导航控制器层次结构中的选项卡控制器
干杯
尼克
您可以使用 tabbar 控制器委托就像一个魅力
-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController { [viewController viewWillAppear:YES]; }
请在此处查看我的回答
如果您发现这个问题是因为您想更新UITabBarController
本身的东西,而不是UIViewControllers
a 的UITabBarController
,就像 OP 的问题一样。例如,隐藏或显示自定义UITabBarButton
. 在 Swift 3.0 中,覆盖setNeedsStatusBarAppearanceUpdate
我的UITabBarController
课程对我有用。
override func setNeedsStatusBarAppearanceUpdate() {
}
viewWillAppear
应该只在视图出现时使用,而不是用于更新它。
setNeedsDisplay
改为在viewController
's 视图上使用。