2010-06-04 3 views
1

J'utilise un UINavigationController pour pousser et ouvrir des vues. La barre de navigation est cachée. Je possède RootViewController, qui est réglé pour autorotate. Cela fonctionne très bien quand il est visible. J'ai également GalleryViewController. Il a désactivé l'autorotation en renvoyant simplement non.Contrôleur UINavigation et Autorotation


Mon problème est, quand GalleryViewController est sur la pile de navigation, RootViewController cesse de répondre à sa autorotation événements.


Si je suis dans Portrait, et je faites pivoter l'appareil (tout en regardant GalleryViewController) puis appuyez sur le bouton de retour, il saute le GalleryViewController de la pile et révèle les RootViewController, mais RootViewController n'a pas changé la rotation comme avoir dû.

Je me suis bloqué dans la méthode -viewWillAppear et j'ai vérifié l'état de l'orientation UIDevice. Cela me donne l'orientation correcte pour l'appareil. Par ailleurs, j'ai également essayé d'activer l'autorotate dans le GalleryViewController. Il tourne ensuite la vue correctement mais ne fait toujours pas pivoter le RootViewController.


Il semble que lorsque vous utilisez le contrôleur de navigation, seul le haut de la pile pivote.


QUESTION: Puisque l'appareil sait qu'il est dans la rotation correcte lorsque -viewWillAppear est appelé, puis-je forcer à mettre à jour en quelque sorte ??

-Mark

Répondre

0

au lieu de retourner simplement OUI, le retour (interfaceOrientaion == || UIInterfaceOrientationPortrait interfaceOrientation == UIInterfaceOrientationLandscapeLeft || et ainsi de suite ...) dans le RootViewController.

dans le GalleryViewController retourner une seule orientation qui, à notre avis, est celle par défaut. Une fois terminé - tout devrait fonctionner comme vous le souhaitez.

Questions connexes