Swift 画面、縦、固定モードを作りたい、問題あり

概要

電子書籍(PDF)読書アプリ開発中。
画面、縦、固定モードを作りたい。
iPad Pro 12.9インチは画面が広いので横2頁表示は使える。
iPad miniは画面サイズが小さいので縦1頁表示にしたい。

Example

ViewController.swift

import UIKit

class ViewController: UIViewController {

//    override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
//        return .portrait
//    }
//
    override var shouldAutorotate: Bool {
        return false
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        let notification = NotificationCenter.default
        notification.addObserver(self, selector: #selector(self.orientationDidChangeNotification(_:)), name: UIDevice.orientationDidChangeNotification, object: nil)
    }

    @objc func orientationDidChangeNotification(_ notification: Notification) {
        let device = UIDevice.current
        print("Device orientation:\(device.orientation.rawValue)")
    }

}

問題

上手くいく場合
「Device Orientation」設定のチェックが一つでもOffの場合

例は「Updide Down」をOffにしています。「Landscape Left」でも同様でした。

上手くいかない場合
「Device Orientation」設定のチェックが全てOnの場合

対処法

調査中。

Swift

Posted by shi-n