2010-05-06 8 views
3

J'essaye d'implémenter la rotation automatique dans mon application qui est fondamentalement UINavigationController avec beaucoup de UIViewControllers qui sont poussés dessus.shouldAutorotateToInterfaceOrientation & UINavigationController

J'ai collé copie dans mon premier UIViewController (qui est poussé dans UINavigationController):

 
- (BOOL)shouldAutorotateToInterfaceOrientation: 
(UIInterfaceOrientation)interfaceOrientation { 
return YES; 
} 

Tout fonctionnait bien ... Cependant, si je colle dans ce code en deuxième UIViewController (que le premier on appuie sur le dessus après un clic sur un bouton) - l'autorotation ne fonctionnera pas. shouldAutorotateToInterfaceOrientation est appelée quand UIViewController est initialisé, mais après il est visible et je fais pivoter le périphérique - rien ne se passe. Donc le résultat est: la première vue est bien tournée - portrait/paysage ... mais après avoir cliqué sur le bouton et entrer dans la deuxième vue, je reste coincé dans ce portrait ou ce paysage, tout ce qui était actif.

J'ai essayé de sous-classer UINavigationController et d'y définir shouldAutorotateToInterfaceOrientation, mais cela ne fonctionne pas non plus.

Qu'est-ce que je fais mal?

+0

S'il vous plaît voir ma réponse ici comme informations supplémentaires: http://stackoverflow.com/questions/3213885/ipad-orientation-change-issue/3239351#3239351 – iwasrobbed

Répondre

1

Il y a un bogue dans l'API qui ne provoque pas de travailler pour la deuxième vue. Je l'ai résolu à l'origine en utilisant setOrientation, mais c'est une API privée et donc pas une solution raisonnable. Je n'ai pas publié de nouvelles versions de l'application pendant que j'essaie de trouver des alternatives (et je ne pense pas que la mise à niveau des clients vers OS 4.0 soit une solution). Je pense que je vais devoir suivre manuellement l'orientation et faire pivoter mes vues manuellement pour contrer les effets de la mauvaise rotation.

+0

S'il vous plaît voir ma réponse ici à titre d'information supplémentaire: http://stackoverflow.com/questions/3213885/ipad-orientation-change-issue/3239351#3239351 – iwasrobbed

0

Vous devez mettre en œuvre cette méthode dans toutes les vues de la hiérarchie

+0

J'ai dit en question que j'ai essayé de l'implémenter dans toutes les vues (et que cela ne fonctionnait que pour la première vue). – kape123

Questions connexes