Je dessine le flux de travail d'une application où vous avez un menu principal 'Niveau 0' qui appelle une vue modale 'Niveau 1', qui appelle une autre vue modale 'Niveau 2'.iPhone - quitter la vue modale parent
Je suis en mesure d'obtenir ce travail, pas de problème et je suis en mesure de rejeter l'ensemble de la pile en utilisant:
[[[self parentViewController] parentViewController] dismissModalViewControllerAnimated:YES];
dans la vue modale « Niveau 2 ».
Mon problème est quand la vue modale 'Level 2' a une barre de navigation je ne peux pas rejeter toute la pile. Le code I énuméré ci-dessus ne me ramène un niveau il agit vraiment comme si je l'avais fait ceci:
[self dismissModalViewControllerAnimated:YES];
sur la vue modale « Niveau 2 ».
Résumé: Lorsque vue modal « Niveau 1 » appelle vue modale « niveau 2 » en utilisant les éléments suivants:
Level2 *level2 = [[[Level2 alloc] initWithNibName:@"Level2" bundle:nil] autorelease];
[self presentModalViewController:portalMainController animated:YES];
je peux rejeter l'ensemble de la pile et de revenir au menu principal (niveau 0). Mais quand « niveau 1 » appelle « niveau 2 » avec une barre de navigation comme ce qui suit:
Level2 *level2 = [[[Level2 alloc] initWithNibName:@"Level2" bundle:nil] autorelease];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:level2];
[self presentModalViewController:navigationController animated:YES];
[navigationController release];
Je ne peux pas retourner au « niveau 0 », je ne reçois que de retour au « niveau 1 ».
Des suggestions?
Merci. J'ai installé un protocole Level2 mais j'ai un problème "régler le délégué du contrôleur de niveau 2 pour qu'il soit le contrôleur de niveau 1". J'ai lu quelques autres articles, mais j'ai un problème à résoudre ce problème. – CraigH
Lorsque le niveau 1 instancie le contrôleur de niveau 2, vous pouvez faire level2.delegate = self; – rickharrison
Génial. Merci Rick, j'ai compris. – CraigH