Question

Problème rapide:

J'ai un UITabBarController avec 2 contrôleurs de navigation [permet de les appeler gauche et droite Controller]

Sur la valeur par défaut sélectionné Controller gauche je peux pousser un nouveau View Controller qui détecte l'orientation interface.

Sur le contrôleur droit je peux pousser le même point de vue du contrôleur, mais il ne détecte pas l'orientation de l'interface, ou pour cette matière, il ne va pas même dans la méthode shouldAutoRotateInterface du tout T ___ T

Haaalp !!

Si elle est de toute pertinence, la vue Contoller que je pousse utiliser la propriété hidesBottomBarWhenPushed.

Était-ce utile?

La solution

que votre UITabBarController mettre en œuvre la rotation automatique? tout viewcontroller enfant qui souhaite mettre en œuvre autorotation doit avoir son parent mettre en œuvre autorotation.

Autres conseils

La plupart il est probable que votre problème:

  

contrôleurs de barre d'onglets supportent un portrait   l'orientation par défaut et ne pas   Faire pivoter à une orientation paysage    à moins que tous les contrôleurs de vue racine soutenir une telle orientation .   Lorsqu'une orientation de l'appareil   le changement se produit, la languette de commande de barre   interroge sa gamme de contrôleurs de vue.   Si l'un d'eux ne prend pas en charge   l'orientation, la barre d'onglets   contrôleur ne change pas   orientation.

La solution consiste à remplacer la méthode suivante sur chaque contrôleur de vue menant à votre vue:

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

Par exemple, au lieu d'utiliser la UITabBarController par défaut dans IB, remplacez-le par votre propre sous-classe ne contenant que la méthode ci-dessus.

Je suis un peu en retard à la fête à ce sujet, mais je suis tombé sur un problème avec autorotation au démarrage pour une application barre d'onglets Je voulais toujours courir en mode portrait.

Le plist de l'application contient les paramètres nécessaires à la fois début et ne permettent en mode portrait, et tous mes contrôleurs vue ne permettent que le mode portrait. Pourtant, quand j'ai commencé l'application tenant mon iPhone dans le paysage, l'application a commencé en mode portrait, mais tourné vers le paysage!

Au lieu de la sous-classe UITabBarController, je simplement la méthode de UITabBarController de l'emportait sur shouldAutorotateToInterfaceOrientation: en utilisant une catégorie de la classe UITabBarController. J'inclus ce code dans mon délégué app:

@implementation UITabBarController(UITabBarControllerCategory)

-(BOOL)shouldAutorotateToInterfaceOrientation:
                 (UIInterfaceOrientation)toInterfaceOrientation
{
    return (toInterfaceOrientation == UIInterfaceOrientationPortrait);
}

@end

fonctionne à merveille, et est tout à fait léger.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top