J'ai récemment rencontré un problème. Mon application iPad empêche la rotation automatique de l'iPad. Mon application Charge un UisplitView avec les deux contrôleurs d'affichage renvoyant oui pour DutressAtOtaTeTointerFaceOrientation :. J'ai configuré mon info.plist pour inclure la touche "Orientations d'interface pris en charge" avec les quatre orientations. Lorsque j'exécute l'application, toutefois, la rotation du périphérique ne fait pas pivoter la SplitView (même si je reçois la réception d'UideviceSorientationDidchangenotification). De plus, lorsque je quitte mon application dans une orientation différente de son démarrage dans l'écran d'accueil iPad n'atortate pas à la vue correcte jusqu'à ce que je le tire à nouveau sans mon application en cours ... Toutes les idées seraient très appréciées ... . P>
6 Réponses :
Vous avez dit que votre premier problème est que l'UisplitView vous empêche d'avoir une autocartage. Essayez d'utiliser une sous-classe de SplitView au lieu de cela que EnBales Autorotation:
@implementation SplitViewControllerRotating - (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{ NSLog(@"SplitViewControllerRotating shouldAutorotate"); return YES; } @end
Je lui ai donné un coup ... ça n'a pas fonctionné ... N'est-ce pas le but de l'UisplitView d'autorotater quand même?
Est-ce que quelqu'un connaît une solution sur iOS 9? Les réponses recherchées ci-dessus sont obsolètes.
J'ai eu le même problème en ce moment. La raison était que j'avais accidentellement ajouté une autre page em> à la fenêtre en plus de la vue UisplitViewController. Supprimer la vue supplémentaire rendue son travail. P>
est votre UisplitViewController définie comme contrôleur de vue racine? Sinon, cela peut être la cause de votre problème. J'avais un problème similaire - la barre d'état tournerait mais mes vues de détail et de maîtrise resteraient en place. J'ai réarrangé les vues de manière à ce que l'UisplitViewController était la racine, puis mon "menu principal" a été présenté comme un contrôleur de visualisation modal sur la vue Split et le problème de rotation disparaît. P>
Voici dans l'espoir que Apple fait UISPLITVIEWCONTROLLER CODE> est l'une des sous-classes de contrôleur de vue la plus tempéramentielle que j'ai à utiliser. Pour qu'il fonctionne "parfaitement", il est doit être strong> exister comme une seule vue racine de la fenêtre de votre application. Vous pouvez, cependant, contourner cela avec un peu de tromperie - dans mon cas, j'avais besoin d'un
uitabbarcontroller code> avec au moins deux
uisplitViewController code> s comme contrôleurs de vue - mais vous Prendre soin des cas étranges impliquant une rotation et
UisplitViewControllerdelegate code> Callbacks ne tiers pas. P>
UisplitViewController code> plus compatible avec les autres
uikit code> composants à l'avenir ... p>
Vous pouvez vous en contourner avec de la tromperie que vous dites ... De quel scandale? Vous taquinez!
Ce qu'il est tombé en train de transférer manuellement les méthodes de rotation appropriées. Enregistrement d'un tas de choses pour voir quelles méthodes étaient et nous ne sommes pas appelés. Ensuite, je viens de compenser dans la sous-classe de contrôleur d'affichage de la racine en veillant à ce que les contrôleurs de vue des enfants ont obtenu les bonnes méthodes tirées, ont redirigé leurs points de vue, etc.
J'ai le même problème dès maintenant d'avoir mon SplitViewController, qui sont des onglets sous une tabbarcontroller, agissent erratique, il est donc heureux de savoir que ce n'est pas seulement moi! Merci pour ce confort au moins!
J'ai couru dans ce même problème avec deux subordonnées UinavigationControlers. Dans mon cas, la rotation a commencé à fonctionner une fois que je remplace DoTutoroTetaTeTerrageFaceOrientation: dans le contrôleur gauche pour toujours retourner "oui". P>
Le MasterView et le DétachantView doivent prendre en charge OUI pour toute orientation que vous essayez de faire pivoter. Si l'un ou l'autre ne renvoie pas oui, il ne tournera pas. J'ai manqué cette subtil détail, mon masterview uniquement pris en charge portrait. J'espère que ceci aide quelqu'un d'autre.
J'ai trouvé que cela fonctionne bien - à condition que les deux enfants du Si vous avez quelque chose comme: P> UisplitViewController code> implémentent le
devoirOutoroTetOteTointFaceOrientation code>:
(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
return YES;
}