2017-03-07 4 views
0

délèguent App:l'application Paysage un seul contrôleur Portrait - Swift 3

func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask { 
    return UIInterfaceOrientationMask(rawValue: UIInterfaceOrientationMask.landscape.rawValue) 
} 

Dans mon View Controller (MainViewController) J'ai ajouté

override func viewDidLoad() { 
    super.viewDidLoad() 

    let value = UIInterfaceOrientation.portrait.rawValue 
    UIDevice.current.setValue(value, forKey: "orientation") 
    supportedInterfaceOrientations() 
    preferredInterfaceOrientationForPresentation() 
    // Do any additional setup after loading the view. 
} 

private func supportedInterfaceOrientations() -> UIInterfaceOrientationMask { 
    return UIInterfaceOrientationMask(rawValue: UIInterfaceOrientationMask.portrait.rawValue) 
} 

private func shouldAutorotate() -> Bool { 
    return true 
} 

private func preferredInterfaceOrientationForPresentation() -> UIInterfaceOrientation { 

    // Only allow Portrait 
    return UIInterfaceOrientation.portrait 
} 

C'est le seul contrôleur dans l'application Je veux travailler en mode portrait. sauf tout cela en mode paysage.

Mais j'ai essayé de nombreuses choses encore incapable de comprendre pourquoi cela ne fonctionne pas.

Merci d'avance. Désolé d'être Noob dans Swift.

Répondre

1

écrire ce code dans appdelegate

var shouldRotate = false 
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask { 
    if shouldRotate { 
     return .landscape 
    } 
    else { 
     return .portrait 
    } 
} 

ensemble ce code à votre contrôleur de vue en viewDidLoad()

let appDelegate = UIApplication.shared.delegate as! AppDelegate 
    appDelegate.shouldRotate = true // or false to disable rotation 
    //you can manage only changing true or false 

espère que sa vous aide

+0

Hey @seggy Non, ça ne marche pas. Cela a changé la disposition du clavier en portrait. Mais le contrôleur de vue est toujours paysage. – Prateekro

+0

mec son fonctionnement correctement sur mon projet. Je pense que vous êtes quelque chose de mal. – seggy

+0

Hey @seggy Fonctionne lorsque je fais pivoter l'appareil et que je ne force pas le changement d'orientation. Et je veux que le contrôleur forcer changer l'orientation – Prateekro