2012-03-22 15 views
7

Sto provando a chiamare a livello di programmazione il mio storyboard. mio storyboard è composto dai seguenti:Chiamare programmaticamente lo storyboard in delegato

[Navigation Controller] -> [MainMenuView] -> [DetailsView]

L'identificatore "MainMenu" è stata collocata nella [MainMenuView]

il problema che ho' m avendo è lo schermo che mostra vuoto. Cosa devo fare?

Grazie.

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

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

    return YES 
} 

risposta

2

È necessario impostare la proprietà RootViewController della finestra dell'applicazione:

- (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

ho impostarlo ma ancora vuoto – RockBaby

+0

@RockBaby: '' proprietà finestra 'del AppDelegate non è impostato ancora, sei messaggistica zero. Fallo prima in didFinish ...: 'self.window = [[UIWindow alloc] initWithFrame: [[UIScreen mainScreen] bound]];' – Josh

16

È necessario creare prima la finestra manualmente e quindi aggiungere il RootViewController in esso (la risposta precedente era quasi corretto):

- (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

Questo non è più vero per iOS 9 –

Problemi correlati