2012-03-22 61 views
7

我試圖以編程方式調用故事板。 我的故事板由以下部分組成:以編程方式在委託中調用故事板

[導航控制器] - > [MainMenuView] - > [的DetailsView]

的 「MainMenu的」 識別符被安排在[MainMenuView]

問題我」屏幕顯示空白。我需要做什麼?

謝謝。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{  
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 

    MainMenuView *rootViewController = [storyboard instantiateViewControllerWithIdentifier:@"MainMenu"]; 

    return YES 
} 

回答

2

您需要將您的應用程序的窗口RootViewController的屬性:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{  
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
    MainMenuView *rootViewController = [storyboard instantiateViewControllerWithIdentifier:@"MainMenu"]; 

    self.window.rootViewController = rootViewController; 

    return YES; 
} 
+0

我已經設置它,但它仍是空白 – RockBaby 2012-03-22 18:48:55

+0

@RockBaby:在AppDelegate中的'window'屬性尚未設定,你短信爲零。首先在didFinish中執行此操作:'self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];' – Josh 2013-07-25 17:45:05

16

您需要先手動創建的窗口,然後添加RootViewController的在它(以前的答案几乎是正確的):

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 

    UIViewController *mainViewController = [storyboard instantiateInitialViewController]; 

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

    return YES; 
} 
+0

對於ios 9,這不再適用 – 2016-01-20 20:07:43

相關問題