2009-06-23 8 views
0

Je ne sais pas très bien comment faire pivoter les vues qui sont assises sur un UINavigationController.Autorotation avec un contrôleur UINavigation

J'ai l'objet UINavigationController substituée avec un de mes propres qui l'emporte:

  • (void) didRotateFromInterfaceOrientation: (UIInterfaceOrientation) fromInterfaceOrientation {return YES; }

Je une vue sur la pile sur le dispositif de commande et de ce point de vue est chargé à partir d'un XIB avec deux vues en elle. Je veux passer du portrait au paysage. Normalement, je gérerais cela en changeant la vue depuis les fichiers nib de la vue elle-même. Dois-je implémenter le code de rotation dans le contrôleur de navigation ou juste dans mon code de vue?

  • (void) willAnimateFirstHalfOfRotationToInterfaceOrientation: (UIInterfaceOrientation) toInterfaceOrientation Durée: (NSTimeInterval) durée

ce code willAnimate est ce que je suis habitué à utiliser dans la vue elle-même, mais je Je ne vois toujours pas la vue changer, et je pense qu'il se peut que je doive accéder à la vue dans le NavigationController et changer cela, ou même remplacer la même méthode dans le contrôleur de navigation et voir ma vue basculer là.

Des suggestions? Je n'ai jamais réellement fait cela auparavant et j'ai juste découvert que les TabViewControllers et les NavigationControllers sont tous deux en mode portrait uniquement par défaut.

Répondre

0

Il s'avère qu'il n'était pas possible de changer la vue parce que j'essayais de changer le RootView sur le contrôleur de navigation. J'ai contourné ceci en plaçant mon propre contrôleur de vue de racine de pseudo qui ne voit jamais dans la tache de racine sur la pile de navigation. J'ai neutralisé quelques-uns des contrôles de navigation pour tenir compte de cela afin que la fonctionnalité continue la même chose et je serais en mesure de modifier la vue racine perçue souhaitée comme je le devais.

Un début dans la bonne direction se trouve dans ce lien:

http://starterstep.wordpress.com/2009/03/05/changing-a-uinavigationcontroller « s-root-vue-contrôleur/

Questions connexes