我創建了一個視圖控制器,然後創建一個導航控制器:UINavigationController initWithRootVC:如何強制加載VC?
initWithRootViewController:
後來我發現,它調用pushViewController:animated:
,因爲我用我自己的UINavigationController
子類,我覆蓋pushViewController:animated:
:
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
[super pushViewController:viewController animated:animated];
// do something with the VC
}
問題出在
[super pushViewController:viewController animated:animated];
的viewController.isViewLoaded
是NO,所以我實際上無法做到我想要的,有沒有辦法強制VC加載,當它用作導航控制器的根VC時?
謝謝!
編輯,下面是代碼:
MyViewController *vc = [[MyViewController alloc] initWithNib:@"" bundle:nil];
MyNavController *nav = [[MyNavController alloc] initWithRootViewController:vc];
self.revealViewController.frontViewController = nav;
你不應該重寫pushViewController:動畫:在你的子類。我不確定你在做什麼錯誤,但是你不需要做任何事情來獲得根視圖控制器的視圖加載 - 它應該自動加載。請將代碼發佈到創建根視圖控制器和導航控制器的地方。 – rdelmar
你期望看到什麼樣的觀點? vc只會在加載時顯示一個空白屏幕,因爲您沒有在其視圖中添加任何內容。順便說一句,沒有一種叫做initWithNib的方法:bundle:,它的initWithNibName:bundle – rdelmar