2010-09-13 25 views
2

je peux « recroqueviller » un contrôleur de vue avec ce code:Puis-je "recourber" une page sur popViewControllerAnimated?

[UIView beginAnimations:@"animation" context:nil]; 
[self.navigationController pushViewController:page animated:NO]; 
[UIView setAnimationDuration:1]; 
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.navigationController.view cache:NO]; 
[UIView commitAnimations]; 

, mais je ne peux pas la dernière courbe vers le bas la page comme ceci:

[UIView beginAnimations:@"animation" context:nil]; 
[self.navigationController popViewControllerAnimated:NO]; 
[UIView setAnimationDuration:1]; 
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.navigationController.view cache:NO]; 
[UIView commitAnimations]; 

toute idée pourquoi pas? Je veux juste vraiment "inverser" l'animation (comme si un autocollant avait été décollé pour montrer le contrôleur de la vue "poussé" et restait bloqué quand ils cliquaient sur un bouton).

Merci

Répondre

4

Ok, ma vieille réponse était totalement fausse ... le problème est que vous êtes popping le contrôleur de vue avant de régler la vue de transition. Si vous modifiez le code à ceci:

[UIView beginAnimations:@"animation" context:nil]; 
[UIView setAnimationDuration:1]; 
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.navigationController.view cache:NO]; 
[self.navigationController popViewControllerAnimated:NO]; 
[UIView commitAnimations]; 

il fonctionne très bien

+0

génie :) merci. –

+0

copie aveugle collé et travaillé en premier go. Mériter un vote et une solution recommandée. – Ans

1

en utilisant OpenGL ou un grand nombre de processus de CoreAnimation complexes, je suis sûr que vous pouvez, mais il serait beaucoup de tracas pour faire quelque chose comme ça. Quelque chose qui pourrait vous aider le long de: A simple book turning application written entirely with CoreAnimation

+0

ah ... si ce ne est pas aussi facile que mon (deviner) le code alors? Merci pour le lien. :) –

+0

Bizarrement, le code ci-dessus fonctionne très bien pour moi, mais je ne sais pas si c'est la transition que vous vouliez .. –

+0

ça ne marche pas pour moi ...:/peut-être si je l'essaie sur l'appareil au lieu de le simulateur ...:/Je reviendrai à vous. –