1

Je retourne à une vue d'information à l'arrière. Je l'ai retourné, et j'ai une barre de navigation de l'autre côté pour me ramener à la maison à la vue originale (ce qui était un problème lorsque j'essayais d'utiliser un modal).flip viewController ne fait que retourner la première fois

Mon problème maintenant est que cela ne fonctionne que la première fois: je tape sur le bouton info, je retourne à l'arrière. Je tape sur le bouton de retour et je peux revenir en arrière sans problème. Mais, si j'appuie à nouveau sur ce bouton d'information, il passe à la vue info au lieu de retourner. Le retour est toujours bien. Si je quitte la vue racine et que je vais ailleurs et que je reviens, il se retourne correctement. Dans la méthode qui est appelée lorsque je clique sur le bouton Info:

InfoViewController *controller = [[[InfoViewController alloc] init] autorelease]; 
[UIView beginAnimations:@"animation" context:nil]; 
[self.navigationController pushViewController: controller animated:NO]; 
[UIView setAnimationDuration:0.8]; 
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO]; 
[UIView commitAnimations]; 

Merci pour votre aide!

Répondre

1

où vous initialisez InfoViewController? comme chaque fois que vous venez sur la racine il commence à s'initialiser et fonctionne bien ... Lorsque vous cliquez en arrière, il ne .... pas de solution facile sera d'écrire ce code dans viewWillAppear ... qui est appelé chaque fois que vous visitez la vue ..

Hope this helps ..

+0

Merci - qui a fixé ce problème! Il en a malheureusement soulevé un autre que je vais poser séparément. Je vous remercie! – snorkelt

0

est ici un peu plus récente mise en œuvre qui utilise des blocs de nouvelles API UIView et repose sur ARC.

Voici comment vous poussez nouvel écran de retournement:

InfoViewController *controller = [[InfoViewController alloc] init]; 
[self.navigationController pushViewController:controller animated:NO]; 


[UIView transitionFromView:self.view 
        toView:controller.view 
        duration:0.8f 
        options:UIViewAnimationOptionTransitionFlipFromLeft 
       completion:^(BOOL finished) { 

    // Add completion stuff here 

}]; 

Et voici l'extrait pour le rejeter:

[self.navigationController popViewControllerAnimated:NO]; 

[UIView transitionFromView:controller.view 
        toView:self.view duration:0.8f 
        options:UIViewAnimationOptionTransitionFlipFromRight 
       completion:^(BOOL finished) { 

    // Add completion stuff here 

}];