似乎并非每次通过选项卡栏呈现视图时viewDidAppear
都会调用该方法。我已经尽可能多地搜索了这个问题,但还没有真正找到明确的答案。
对此有什么建议或解决方法吗?
为了在标签栏控制器viewWillAppear
中viewDidAppear
正常运行,您需要确保在显示标签栏控制器本身时调用这些方法。也就是说,如果您以UITabBarController
编程方式创建,请务必调用这些方法:
UITabBarController *myTabBarController = [[UITabBarController alloc] init];
[myTabBarController setViewControllers:myViewControllerArray];
[myTabBarController viewWillAppear:NO];
[[self view] addSubview:[myTabBarController view]];
[myTabBarController viewDidAppear:NO];
如果您的选项卡栏控制器是在 NIB 文件中创建的,则这不适用 - 在这种情况下,我不确定为什么viewDidAppear
不会自动调用您的方法。
我个人使用的viewWillAppear:(BOOL)animated
方法。