2009-07-26 6 views
2

Voici le scénario: si c'est la première fois qu'un utilisateur se connecte à mon service Web, je présente une vue de connexion modale. En cas de succès, l'utilisateur peut avoir plusieurs éléments dans son compte et doit en choisir un avant de pouvoir continuer avec le reste de l'application.SDK iPhone 3.0: appels presentModalViewController empilés ou en série?

Je veux mettre en place une autre vue modale avec un sélecteur de sorte que l'utilisateur peut faire le choix. Tous les exemples que j'ai vus de plusieurs modaux présentés sont ceux en boîte (comme le modal de compositeur d'email, avec le sélecteur de personnes qui le survole), ce qui est inutile car le code n'est pas disponible.

Lorsque je tente de mettre en place le modal de connexion, puis le rejeter, puis de présenter le sélecteur, je reçois un récursion quelque part avec un sélecteur envoyé à subviews envoyés à subviews envoyé à ....

Can Quelqu'un me pointer vers un exemple de code? Je garde une référence à la vue de connexion, donc j'ai pensé que je poserais juste la pile (bien, deux) vues modales, alors rejeter le modal de connexion et ils s'en iraient tous (comme la documentation dit), mais je n'arrive pas à comprendre.

Merci d'avance.

Répondre

1

J'ai trouvé que je pouvais le faire, mais il a dû éliminer l'animation sur le premier rejet, ssi j'utilisais animation sur la 2ème presentModalViewController

ContactsViewController* controller = [[ContactsViewController alloc] ... 
UINavigationController* navigationController = [[UINavigationController alloc] initWithRootViewController:controller]; 

[self.navigationController presentModalViewController:navigationController animated:YES]; 
[controller release], controller = nil; 

puis dans ma méthode de délégué qui est appelé à partir la vue modale initiale

[self.navigationController dismissModalViewControllerAnimated:NO]; // dismiss without animation 
[self.navigationController presentModalViewController:anotherViewController animated:YES]; 

Ce comportement a été observé sous OS 3.0.1.

Questions connexes