iOS
Swift

[Swift 3.0] ViewController単位で画面の向きを制御する

More than 1 year has passed since last update.

(おそらくSwift3.0から)デバイスの回転による画面の向きの制御を行うshouldAutorotatesupportedInterfaceOrientationsが、メソッドからreadonlyのプロパティに変わりました。

ソースはAPI Referenceの "Configuring the View Rotation Settings" のセクションをご参照ください。

したがって、ViewController単位でデバイスの回転による画面の向きを制御するには、これらのプロパティをオーバーライドしてgetで返したい値を設定することになります。

以下に、ViewControllerをPortrait固定にする例を示します。


FooViewController.swift

class HogeViewController: UIViewController {

// 省略

// 画面の自動回転をさせない
override var shouldAutorotate: Bool {
get {
return false
}
}

// 画面をPortraitに指定する
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
get {
return .portrait
}
}

// 省略
}