2016-05-18 2 views
0

J'ai désactivé tous les modes d'orientation à l'exception du mode portrait dans mon fichier info.plist car je ne souhaite pas que l'application pivote. Cependant, je veux qu'un contrôleur de vue soit seulement en mode paysage. Puis-je changer l'orientation par programme dans la classe du contrôleur de vue? Ou puis-je désactiver l'autorotation dans info.plist mais activer le mode portrait et paysage?Rotation de l'écran SWIFT

Je sais aussi que je peux vérifier l'orientation du téléphone est tenu par UIDevice.currentDevice().orientation.isLandscape

Mais est-il une méthode qui est exécuté lorsque vous tenez votre téléphone différemment?

Répondre

0

Si vous souhaitez présenter un seul VC dans une orientation différente de la plupart des autres dans l'info.plist, vous devez définir un ensemble de valeurs qui comprend toute l'orientation prise en charge.
Afin d'éviter la possibilité d'un VC à tourner dans une orientation particulière, vous devez remplacer

- shouldAutorotate 
- supportedInterfaceOrintation 
- preferredInterfaceOrientationForPresentation 

Vous trouverez utile aussi cette réponse avec un exemple pratique How to force view controller orientation in iOS 8?

+0

Est-il possible de faire une extension de UIViewController et remplacer la méthode séparément pour ce contrôleur à une vue? – Lenny1357

+0

Si vous lisez le lien que j'ai posté, dans une réponse un utilisateur explique comment faire cela en remplaçant une méthode dans le délégué de l'application – Andrea

+0

Est-il possible de désactiver l'autorotation dans info.plist? – Lenny1357

0

Voir dans UIViewController.h les méthodes shouldAutorotate et supportedInterfaceOrientations.

+0

j'ai essayé d'utiliser les supportedInterfaceOrientations une méthode, mais la La vue n'a pas pivoté. De même, la méthode autorotate ne devrait pas fonctionner si seulement Portrait est autorisé. Ou travaillent-ils seulement ensemble? – Lenny1357