我有基于标签栏的应用程序(iOS 7.1 SDK)。当用户第一次启动应用程序时,我想显示一些登录屏幕。我决定使用视图控制器包含(这在标签栏控制器的第一个视图控制器中调用):
LoginViewController *vc = [LoginViewController new];
[self.tabBarController addChildViewController:vc];
[vc didMoveToParentViewController:self.tabBarController];
[self.tabBarController.view addSubview:vc.view];
但也有一些问题。View 通常是可见的,但在 LoginViewController 中 viewWillAppear 和 viewDidAppear 永远不会被调用。我尝试在所有视图生命周期方法(viewDidLoad、viewWillAppear、viewDidAppear)中使用这段代码,但没有运气。我知道还有其他一些方法可以实现我想要做的事情。例如,将子控制器添加到标签栏控制器的第一个视图控制器并隐藏标签栏,效果很好,通常会调用 viewWillAppear 和 viewDidAppear。但正因为如此,我更加好奇——为什么将子视图控制器添加到标签栏控制器不能按预期工作?