我有基於標籤欄的應用程序(iOS 7.1 SDK)。當用戶第一次啓動應用程序時,我想顯示一些登錄屏幕。我決定使用視圖控制器包容(這稱爲標籤欄控制器的第一視圖控制器):添加子視圖到UITabBarController不能調用viewWillAppear
LoginViewController *vc = [LoginViewController new];
[self.tabBarController addChildViewController:vc];
[vc didMoveToParentViewController:self.tabBarController];
[self.tabBarController.view addSubview:vc.view];
但也有一些問題。視圖通常是可見的,但在LoginViewController中viewWillAppear和viewDidAppear從不會被調用。我嘗試在所有視圖生命週期方法(viewDidLoad,viewWillAppear,viewDidAppear)中使用這段代碼,但沒有運氣。我知道還有其他一些方法可以實現我想要做的事情。例如,將子控制器添加到標籤欄控制器的第一個視圖控制器並隱藏標籤欄,這很好地工作,viewWillAppear和viewDidAppear通常被調用。但正因爲如此,我更加好奇 - 爲什麼將子視圖控制器添加到標籤欄控制器不能按預期工作?
您需要呈現或推動視圖控制器才能調用方法。只是將視圖添加爲子視圖將不起作用。 – ZeMoon