2010-07-16 9 views
1

J'ai creusé pendant quelques jours et je n'arrive pas à comprendre.Rotation de NIBs

Mon application se lance dans le paysage et ne prend en charge que les orientations paysage. Fonctionne bien.

Mon délégué d'application instancie un contrôleur de vue racine, la vue est créée à partir d'un XIB et est remplie avec une image dans viewDidLoad. L'image sous-jacente est la taille du paysage (1024x768). Ça a l'air bien sur l'écran. Une fois l'application lancée, j'attends l'interaction de l'utilisateur, puis présente un nouveau contrôleur de vue avec une nouvelle vue d'un nouveau XIB. Ce second vc/XIB est également en mode paysage (comme spécifié dans le constructeur d'interface). Pour des raisons pratiques, mes XIBs premier et deuxième sont presque identiques - les deux vues de paysage contenant une prise d'imageview occupant l'écran entier. J'utilise UIAnimationTransistion standard lorsque je me déplace entre ma vue racine (essentiellement un écran/menu de démarrage) et ma première vue réelle du contenu. Mon problème est que, peu importe ce que je fais, la première transition d'animation est générée comme si la vue était en mode portrait. Si je spécifie un flip gauche, il bascule de haut en bas. Si je spécifie un flip droit, il bascule de bas en haut. Si je spécifie une boucle, elle se courbe horizontalement. Une fois que j'ai transistionné dans mon deuxième contrôleur de vue (où se trouve la plupart du contenu de mes applications), toutes les animations fonctionnent exactement comme elles le devraient.

Comment puis-je obtenir la première vue qui est chargée (à partir de mon rvc) pour s'orienter correctement afin que mes animations soient cohérentes entre ce premier rvc et le second contenu vc?

+0

avez-vous implémenté -shouldAutorotateToInterfaceOrientation: correctement? – jmont

Répondre

0

Comme jmont l'a dit, il pourrait s'agir d'un problème de -AutoRotateToInterfaceOrientation. Il se peut également que vous deviez spécifier 'InitialInterfaceOrientation' dans info.plist avec une valeur de 'Paysage (bouton d'accueil gauche)' ou 'Paysage (bouton d'accueil droit)'. La dernière possibilité serait de définir directement l'orientation de l'interface.

+0

Mon implémentation (de mon contrôleur de vue racine auquel toutes les sous-vues sont ajoutées, rvc ajouté au délégué de mon application au lancement) Dans mon App-Info.plist, j'ai Orientation de l'interface initiale = Paysage (bouton d'accueil gauche). Tout semble bien quand il apparaît à l'écran, mais mes animations proviennent à différents coins ... - (BOOL) shouldAutorotateToInterfaceOrientation: orientation (UIInterfaceOrientation) { \t \t if ((orientation == UIInterfaceOrientationLandscapeRight) || \t \t (orientation == UIInterfaceOrientationLandscapeLeft)) \t \t return YES; \t \t return NO; } – isaac