2010-06-23 6 views
1

Hii ... je suis nouveau à la programmation de l'iPhone..can quelqu'un m'aider s'il vous plaît ... !! J'ai plusieurs viewControllers ... dans le premier ViewController appelé HomeViewController j'ai appelé la méthode [self presentModalViewController: aboutViewController animated: YES]; dans un IBAction pour aboutButton pour passer à AboutViewController et dans le AboutViewController j'ai appelé la méthode [self presentModalViewController: ContactUsViewController animé: YES]; pour passer à ce contrôleur de vue et une autre méthode [self dismissModalViewControllerAnimated: YES]; pour revenir à HomeViewController.Comment passer à First viewController du dernier contrôleur de vue parmi plusieurs contrôleurs de vue

dans le 3ème, ContactUSViewController i appelé la méthode [auto dismissModalViewControllerAnimated: OUI], pour revenir à la AboutViewController..and je veux aller directement à HomeViewController d'ici (ContactUsViewController) .i utilisé [auto presentModalViewController: homeViewController animé :OUI]; mais ça ne marche pas ...

Comment faire ça ...?

Merci u ..

Répondre

3

Selon le doco pour dismissModalViewControllerAnimated:

Si vous présentez plusieurs vue modale contrôleurs successivement, et ainsi construire une pile de vue modales contrôleurs, appelant cette méthode sur un contrôleur de plus bas dans la pile rejette son enfant immédiat vue contrôleur et tous les contr ollers au-dessus de cet enfant sur la pile. Lorsque cela se produit, seule la vue la plus en haut est rejetée de façon animée; les contrôleurs de vue intermédiaire sont simplement retirés de la pile.

donc de votre ContactUsViewController vous devez appeler dismissViewControllerAnimated sur le HomeViewController. Vous pouvez accéder à ce contrôleur de vue via la propriété parentViewController. Ainsi, votre code dans le dismissAction pour le ContactUsViewController est:

- (IBAction)dismissAction:(id)sender 
{ 
    // get your parent (ie AboutViewController) 
    UIViewController * parent = self.parentViewController; 

    // get its parent (ie HomeViewController) 
    [parent.parentViewController dismissModalViewControllerAnimated:YES]; 
} 

Il pourrait y avoir une meilleure façon de se rendre à votre HomeViewController, mais pour votre pile faible profondeur de contrôleurs de vue, cela devrait être bien (j'essayé ceci dehors et cela a fonctionné).

+0

@macharlarakesh S'il y a quelque chose de spécifique à propos de cette réponse à clarifier, laissez un commentaire ici. – RedBlueThing

+0

oui ..., son Cannonade travaillé ... !! Merci beaucoup – rockey

+0

@macharlarakesh Content de l'entendre :). Vous pouvez indiquer que la réponse a été positive en cliquant sur la case «Accepter la réponse» juste sous le numéro de vote sur le côté gauche. – RedBlueThing

Questions connexes