2014-04-15 41 views
1

我遵循this question的建議,以便在運行時定義我的初始視圖控制器,而不是總是基於Storyboard屬性。爲什麼我無法在我的AppDelegate中以編程方式更改我的初始視圖控制器?

這是我didFinishLaunching方法:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
    UINavigationController *compactNavigationController = [mainStoryboard instantiateViewControllerWithIdentifier:@"CompactNavigationController"]; 
    self.window.rootViewController = compactNavigationController; 
    [self.window makeKeyAndVisible]; 

    CompactPostsViewController *controller = (CompactPostsViewController *)compactNavigationController.topViewController; 
    controller.managedObjectContext = self.managedObjectContext; 

    return YES; 
} 

而且我已經選中「在初始視圖控制器」在我的故事板,我已經刪除「主」在我的應用程序的信息默認故事板。

但是,當我啓動應用程序,我得到一個完全黑屏。我究竟做錯了什麼?

回答

1

你的窗口是零,因爲你從來沒有創建它。您需要添加這一行,

self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds]; 

爲您創建的窗口,當你在你的info.plist「主故事板基本名稱」項,但如果您刪除,那麼你必須創建窗口你自己。

0

檢查您的故事板中的鏈接(通過右鍵單擊tableview控制器)。這主要發生在您未正確鏈接tableview控制器時。

相關問題