2017-05-11 1 views
0

Je chargement contrôleur de vue dans différents story-board:iOS: presentViewController dans différents story-board n'est pas montrant la barre de navigation

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"NewStoryBoard" bundle:nil]; 
NewViewController *detailViewController = [storyboard instantiateViewControllerWithIdentifier:@"NewViewController"]; 
[self presentViewController:detailViewController animated:YES completion:Nil]; 

enter image description here Mais il ne montre la barre de navigation dans l'appareil. L'un d'entre vous sait pourquoi cela se passe ou comment puis-je résoudre ce problème?

J'apprécierai vraiment votre aide.

+0

Dans votre image, '' NewViewController' est une UIViewController' plaine. Si vous chargez cela via le code, vous *** ne chargez pas un UINavigationController, donc quand vous présentez PresentController, il ne le place pas sur une pile de navigation ... Appellez-vous ce code depuis un contrôleur de vue déjà installé * dans * un NavigationController? – DonMag

Répondre

1

Essayez ce

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"NewStoryBoard" bundle:nil]; 
NewViewController *detailViewController = [storyboard instantiateViewControllerWithIdentifier:@"NewViewController"]; 
UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:detailViewController]; 
[self presentViewController:navController animated:YES completion:Nil]; 
0

Plutôt que de l'instanciation d'un ViewController à partir d'un identificateur, essayer performsegueWithIdentifier de transition. Lorsque vous instanciez le ViewController, il est créé indépendamment du contrôleur de navigation dont il provient.

  1. Ouvrez votre Storyboard et cliquez sur le Segue (la flèche entre les contrôleurs de vue), et affecter un identifiant à elle, à savoir « SegueToNewViewController ».
  2. Appelez la méthode suivante à partir d'un ViewController qui est un enfant d'un contrôleur de navigation:

    [auto performSegueWithIdentifier: @ expéditeur "SegueToNewViewController": auto];

Ceci effectuera une Segue de l'appelant ViewController au nouveau ViewController, y compris le NavigationBar