2010-09-07 3 views
0

J'ai une application iPad qui démarre en mode paysage. De ce que j'ai lu, l'UIWindow lui-même n'a pas besoin d'être pivoté, à la place, il va appliquer une transformation de rotation à toutes ses sous-vues lorsque l'appareil est tourné.Cocoa-Touch: UIWindow ne pas faire pivoter certaines sous-vues

Mon application a un UINavigationController qui a des vues de l'application, et au-dessus un MenuBarViewController personnalisé qui montrera parfois sur un bord de l'écran.

Dans mon délégué app didFinishLaunching.. je:

[window addSubview:navigationController.view]; 
[window addSubview:menuBarWrapperViewController.view]; 
[window bringSubviewToFront:menuBarWrapperViewController.view]; 

Les vues dans mon NavigationController semblent être bien, mais la vue dans mon MenuBarViewController ne sont pas mis en rotation.

J'ai vérifié, et mon MenuBarViewController et mon retour MenuBarWrapperViewControllerYES-shouldAutorotate..

(qui ne fait rien encore) Est-ce que quelqu'un a une idée pourquoi un de mes UIViews subviews ne reçoit pas le bon transformation de rotation?

EDIT: après enquête, il semble que UIWindow applique uniquement la transformation au premier ajouté sous-vue, donc si je change l'ordre des appels addSubview, seul le premier sous-vue sera tourné.

Est-ce que quelqu'un sait pourquoi?

Répondre

0

Vous devriez peut-être essayer d'avoir un contrôleur de vue en charge de gérer toutes les rotations de toutes les sous-vues affichées.

+0

C'est ce que je fais en ce moment, mais j'aimerais savoir pourquoi et supprimer ce hack. – Prody

Questions connexes