Obtenir Initial View Controller à partir de Storyboard dans le délégué de l'application

J'essaie d'accéder au viewcontroller initial de mon storyboard. C'est un controller de navigation câblé à un second controller de vue via un seque. Donc, après l'application a fini de lancer je veux montrer directement viewController qui est connecté à travers le segue. Je l'ai essayé avec du code comme ça mais ça ne marche pas …

UINavigationController *navController = (UINavigationController*)self.window.rootViewController; [navController.topViewController performSegueWithIdentifier:@"showLoginScreen" sender:self]; 

Qu'est-ce que je fais mal?

4 ans plus tard :

Si je regarde à nouveau ma question après 4 ans, je n'ai aucune idée de ce qui était réellement mon problème.

Assurez-vous d'avoir cocher la case

est ViewController initial

option pour UINavigationController dans storyBoard

 UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; UINavigationController * myStoryBoardInitialViewController = [storyboard instantiateInitialViewController]; 

Sebastian, je ne sais pas pourquoi vous voudriez démarrer le controller de vue initial manuellement – tous mes projets (qui utilisent tous des storyboards) le font automatiquement si vous avez coché "Use Storyboards" sur le deuxième écran de l'assistant "Nouveau projet".

Peut-être que vous avez besoin de marquer la scène storyboard comme inital? Cela peut être fait dans l'inspecteur d'attributes de la scène en cochant la case "Is Initial View Controller" – de façon plutôt évidente.

Et puis – si vous avez vraiment une configuration inhabituelle qui vous oblige à accéder aux scènes manuellement, vous pouvez utiliser ce qui suit:

 UIStoryboard *sb = [UIStoryboard storyboardWithName: "StoryboardName" bundle: [NSBundle mainBundle]]; UIViewController *vc = [sb instantiateInitialViewController]; 

(Méfiez-vous – pas de complétion de code ici, donc vérifiez à nouveau l'orthographe.)

Ou peut-être que je me trompe complètement? Piratage heureux!

Dans mon application, j'ai tabBar

 UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; TabBarController *tabBar = [storyBoard instantiateViewControllerWithIdentifier:@"TabBarController"]; _window.rootViewController = tabBar;