我有一個故事板應用程序,根視圖控制器是UITableViewController
。在故事板應用程序中,如何在應用程序中從AppDelegate呈現視圖控制器:didFinishLaunchingWithOptions:?
有時,當我啓動應用程序時,我需要提供一個視圖控制器(不需要筆尖或任何東西)。這是我想做的是:
在我UIApplicationDelegate
application:application didFinishLaunchingWithOptions:
:
SplashViewController * splashViewController = [[SplashViewController alloc] init];
splashViewController.semaphore = semaphore;
[self.window.rootViewController presentViewController:splashViewController animated:NO completion:nil];
的問題是,在這一刻UITabBarController
尚未在視圖層次,所以我得到這樣的警告:
Warning: Attempt to present <SplashViewController: 0xa786a10> on <UITabBarController: 0xb35d830> whose view is not in the window hierarchy!
移動從AppDelegate中這段代碼的UITableViewController
的第一個視圖控制器的viewDidLoad
並不認爲是正確的,因爲我需要在我的AppDelegate創造一些性質只是爲了讓我的第一個視圖控制器構建該視圖。這個邏輯不適合那裏。
什麼是呈現此視圖控制器的正確方法?
爲什麼你需要創建在的appDelegate這些特性,而不是在viewDidLoad中根視圖控制器? – rdelmar