2016-11-03 13 views
2

私が展開情報に頼ることなく、自分のviewControllerにだけ縦向きをロックしようとしていますが、私の次のコードは、必ず親にあなたのコードを入れてくださいスウィフト3

override var shouldAutorotate: Bool { 
    return false 
} 

override var supportedInterfaceOrientations: UIInterfaceOrientationMask { 
    return UIInterfaceOrientationMask.portrait 
} 

override var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation { 
    return UIInterfaceOrientation.portrait 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 

} 
+2

なぜこの情報に頼らないのですか? –

+1

あなたのコードをコピー&ペーストして、viewControllerを* portrait *モードにロックします。オーバーライドvar supportedInterfaceOrientations:UIInterfaceOrientationMask {return UIInterfaceOrientationMask.portrait} 'で十分です。 。 –

+0

@Carlo plzはここを見ています: - https://stackoverflow.com/questions/31758706/how-to-force-or-disable-interface-orientation-for-some-but-not-all-uiviewcontrol/31801804# 31801804 –

答えて

1

が動作していませんそれ以外の場合は、ナビゲーションコントローラビューコントローラクラスなどでは動作しない可能性があります。

5

これはAppDelegateで試すことができます。これにより、すべてのviewControllerの向きが固定されます

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