2010-11-20 5 views
0

Dans mon application, j'ai un contrôleur MainView que j'essaie d'utiliser pour la tenue et le contrôle de quelques vues principales pour mon application. J'ai d'abord chargé un écran de démarrage, mais je veux l'avoir de sorte que lorsqu'un utilisateur tape sur l'écran de démarrage, ils sont pris au menu principal.UINavigationController affichant le titre, mais pas l'affichage

La partie écran d'accueil fonctionne correctement, mais j'ai des problèmes avec la partie NavigationController.


[splashView.view removeFromSuperview];

mainMenu = [[menuScreenViewController alloc] initWithNibName: @ paquet "menuScreenViewController": néant]; mainMenu.title = @ "Menu"; mainNavController = [[UINavigationController alloc] init]; [MainNavController pushViewController: Menu principal animé: NO];

[MAINVC.view addSubview: mainNavController.view];

[version principale]; [version de mainNavController];

[version splashView];


(MAINVC est défini ailleurs pour être mon contrôleur principal).

Quoi qu'il en soit, quand je fais cela, je reçois le contrôleur de navigation avec le titre «Menu», mais la vue contenue dans le contrôleur de vue MainMenu n'apparaît pas dans le contrôleur de navigation.

Si j'ajoute simplement la vue principale du menu principal à une sous-vue de MAINVC.view, elle s'affiche correctement.

Des suggestions pour l'afficher dans mon contrôleur de navigation?

+0

avery, avez-vous répondu à cette question? –

Répondre

0

avery, vous devrez initialiser le contrôleur de navigation avec le mainMenu comme contrôleur de vue racine, au lieu de simplement initialiser, puis d'activer une nouvelle vue. Il a besoin de ce contrôleur de vue racine pour fonctionner.

mainMenu = [[menuScreenViewController alloc] initWithNibName:@"menuScreenViewController" bundle:nil]; 
mainMenu.title = @"Menu"; 
mainNavController = [[UINavigationController alloc] initWithRootViewController:mainMenu]; 

//ADD MODAL SPLASH SCREEN HERE 

[MAINVC.view addSubview:mainNavController.view]; 

[mainMenu release]; 
[mainNavController release]; 

[splashView release]; 

Comme le commentaire ci-dessus montre, je suggère que vous initialisez cette façon, puis ajoutez ensuite votre écran de démarrage au contrôleur de navigation en tant que modalViewController. Cela évitera tout retard que vous pourriez avoir à l'initialisation du menu principal, lorsque vous appuyez sur l'écran tactile. Ensuite, lorsque la vue modale reçoit une touche, vous pouvez appeler:

[self.parentViewController dismissModalViewControllerAnimated:YES]; 
Questions connexes