J'ai 10 contrôleurs de vue dans mon application et je veux seulement un contrôleur de vue à voir en mode portrait et paysage et le reste ne devrait être visualisé en mode portrait. Note: J'utilise UINavigationController. Toute aide est appréciée!Activer le portrait et le paysage pour un contrôleur de vue et uniquement le portrait pour les autres contrôleurs de vue dans swift?
3
A
Répondre
1
J'ai eu le même problème, mais a trouvé une solution:
D'abord, autoriser le mode paysage pour votre application dans les paramètres de base. Ensuite, modifier votre AppDelegate:
internal var shouldRotate = false
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
return shouldRotate ? .allButUpsideDown : .portrait
}
Pour chaque contrôleur, où le mode paysage devrait être autorisé, ajoutez le code suivant à la viewDidLoad():
let appDelegate = UIApplication.shared.delegate as! AppDelegate
appDelegate.shouldRotate = true
qui permet toute l'application à afficher dans mode paysage. Mais il devrait être seulement dans ce contrôleur, il faut donc ajouter le code suivant dans viewWillDissappear() pour définir le shouldRotate var dans le AppDelegate false:
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(true)
let appDelegate = UIApplication.shared.delegate as! AppDelegate
appDelegate.shouldRotate = false
}
possible en double http://stackoverflow.com/questions/26357162/ how-to-force-view-contrôleur-orientation-in-ios-8 –
@Gagan_iOS aucun d'entre eux ne fonctionne, je veux la solution pour iOS 9, les solutions qui sont présentes dans le lien que vous avez posté ne fonctionnent pas pour iOS 9 . –