2010-12-01 31 views
0

J'ai une animation effectuée sur la keyWindow de l'application.Notifications d'orientation de l'iPad perdues lors de la transition pour keyWindow

[UIView beginAnimations:kAnimationLogin context:nil]; 
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:window_ cache:NO]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
[UIView setAnimationDuration:1.0]; 

[window_ addSubview:splitViewController_.view]; 

[UIView commitAnimations]; 

[loginViewController_.view removeFromSuperview]; 

Cela fonctionne bien. Ensuite, si l'utilisateur se déconnecte, la transition est inversée

[UIView beginAnimations:kAnimationLogout context:nil]; 
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:window_ cache:NO];  
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
[UIView setAnimationDuration:1.0]; 

[window_ addSubview:loginViewController_.view]; 

[UIView commitAnimations]; 

[splitViewController_.view removeFromSuperview]; 

Voici le problème. Maintenant, loginViewController_ et splitViewController_ ne reçoivent pas les notifications d'orientation. Pourquoi?

+0

Voulez-vous dire qu'ils ne reçoivent pas les notifications de changement d'orientation après les animations. Les reçoivent-ils si les animations ne sont pas effectuées? – TechZen

+0

oui, techZen, c'est le point, si je ne fais pas la transition le problème d'orientation n'apparaît pas mais si je le fais le problème commence. – emenegro

Répondre

0

Eh bien, ce n'est pas une bonne solution, mais j'ai trouvé un moyen d'éviter ce problème. Tout d'abord, je pense que le problème vient du fait que, pendant l'animation, les deux contrôleurs de vue reçoivent les notifications d'orientation alors que, je suppose, ils ajoutent et suppriment vers et depuis la fenêtre et soulèvent le problème. Je ne sais pas exactement si c'est un problème lié à la hiérarchie des vues (je suppose que c'est correct mais je ne suis pas sûr) ou pas. Donc, la solution que j'utilise est de mettre le LoginViewController en tant que ModalViewController de SplitViewController, c'est-à-dire le contrôleur principal, et d'utiliser une transition FlipHorizontal lors de l'affichage.

Cela résout le problème.