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