iOS 6 Rotation problème - Pas de rotation de Présenté Modal-Vue-Contrôleur
J'ai un MainViewController qui dispose d'un bouton qui pousse un nouveau point de vue (InfoViewController), via flip horizontailly. comme:
controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:controller animated:YES];
La MainView Contrôleur prend en charge le mode Portrait et PortraitUpsideDown. Comme:
- (BOOL)shouldAutorotate {
return YES;
}
- (NSUInteger)supportedInterfaceOrientations {
return (UIInterfaceOrientationMaskPortrait |
UIInterfaceOrientationMaskPortraitUpsideDown);
}
Dans mon InfoViewController il indique également le code ci-dessus. Dans mon AppDelegate il a cela dans le LaunchOptions:
[self.window setRootViewController:self.mainViewController];
Dans mon application.fichier plist il prend en charge toutes les orientations. C'est parce que d'autres vues de la nécessité de soutenir le paysage. Donc Sur mon MainViewController et InfoViewController j'ai besoin seulement de Portrait et de PortraitUpsideDown. Mais sur un autre point de vue j'ai besoin de tous orintations.
Mon MainViewController fonctionne très bien, mais mon InfoViewController travaille pour toutes les orientations.
Je vais avoir l'extrême diffulty essayer d'obtenir que cela fonctionne dans iOS6. J'ai recherché d'autres postes, et a essayé de l'assistance d'autres personnes ont fourni, mais n'avait pas de chance que ce soit. Svp quelqu'un peut-il m'aider à réaliser ce merci. Et je suis Objective-C newbie :p
OriginalL'auteur ryryan | 2012-09-23
Vous devez vous connecter pour publier un commentaire.
Ne pas soutenir toutes les orientations dans votre application fichier plist, seuls ceux que votre vue de la racine contrôleur prend en charge.
Autorotation est en train de changer dans iOS 6. Dans iOS 6, le
shouldAutorotateToInterfaceOrientation:
méthode de UIViewController est obsolète. À sa place, vous devez utiliser lesupportedInterfaceOrientationsForWindow:
etshouldAutorotate
méthodes:Modal ViewControllers ne plus obtenir de rotation des appels dans iOS 6:
Le
willRotateToInterfaceOrientation:duration:,
willAnimateRotationToInterfaceOrientation:duration:,
etdidRotateFromInterfaceOrientation:
méthodes ne sont plus appelés à tout point de vue contrôleur de tel qu'une présentation à l'écran pluslui-même—par exemple, ceux qui sont appelés à:
presentViewController:animated:completion:
.Vous pouvez laisser la vue-contrôleur qui présente votre modal-vue-contrôleur l'informe de la rotation.
Aussi, maintenant, vous utilisez:
presentViewController:animated:completion:
à présenter le point de vue du contrôleur.presentModalViewController:animated:
est obsolète que vous utilisez dans le code.Si vous n'avez pas l'shouldAutorotate retour OUI, alors votre supportedInterfaceOrientations n'est jamais appelée, et la vue ne marche pas tourner. Ce qu'entendez-vous par " ne fonctionne pas?
Le shouldAutorotate de ce point de vue est de retour OUI.
Ensuite, vous revenez à la supportedInterfaceOrientations que vous souhaitez pour permettre la rotation.
Modal vue contrôleurs de ne plus obtenir de rotation des appels dans iOS 6
OriginalL'auteur Hannes Sverrisson
J'ai résolu des problèmes similaires, tout en utilisant l'onglet de la barre de contrôleur.
Sous-Classe UITabBarController. Mise en œuvre de ces méthodes:
Si vous voulez gérer les rotations dans les contrôleurs à l'intérieur de tabbarcontroller, dans chacun des contrôleurs dans la barre d'onglet contrôleur de mettre en œuvre ces méthodes et écrire du code pour gérer changement d'orientation. Si vous ne voulez pas gérer cela, alors vous n'avez pas besoin de mettre en œuvre ces méthodes. TabBarControllers méthodes de toujours exécuter lors de changements d'orientation. Même deux fois pour une raison inconnue.
Oui, et n'oubliez pas de supprimer tous les shouldAutorotate méthodes. J'ai déménagé à la nouvelle orientation de modèle complètement. Si vous voulez les faire rester, probablement, il sera plus difficile.
OriginalL'auteur wzbozon
Faire une catégorie par sous-classement UINavigationController et mettre en œuvre des méthodes suivantes
dans .h fichier
et mettre en œuvre des méthodes suivantes dans la vue de contrôleur de classe ,de catégorie u souhaitez activer la rotation
OriginalL'auteur Alok SInha
ajouter ce code sur sous-classe UITabBarController .m
Ici, j'ai posté ma solution/mise en commun dans le tab bar controller avec des rotations:
http://luterr.blogspot.sg/2015/04/example-code-uiinterfaceorientationmask.html
OriginalL'auteur Luter Rinding