Swift Device Orientationをコードで制限する

Device Orientationをコードで制限するには

プロジェクトファイルのTARGETS-General-Deployment InfoのDevice Orientationのチェックは全て外す。
1つでもチェックが入っているとコード側は無視される。

コード

override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
    var result: UIInterfaceOrientationMask = [.portrait, .portraitUpsideDown, .landscapeLeft, .landscapeRight]
    return result
}

superは全て許可が設定されている。

super.supportedInterfaceOrientations

コードで制御したかった理由

ある条件下で.portraitのみにしたかった。

override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
    var result = super.supportedInterfaceOrientations
    if self.stopLandscape == true {
        result = .portrait
    }
    return result
}

Swift

Posted by shi-n