2012-03-22 70 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

相关问题