Принудительная ошибка ориентации устройства - PullRequest
0 голосов
/ 19 апреля 2019

Я занимаюсь разработкой приложения для IOS только с одним контроллером представления и фиксированной ориентацией (портрет).Однако, если пользователь хочет прочитать руководство, устройство автоматически переходит в ландшафтный режим.Моя реализация обычно работает, но я обнаружил там ошибку: если я перехожу в альбомный режим (с пунктом меню руководства пользователя) и возвращаю устройство обратно в портретный режим, а затем я возвращаюсь в меню, в пользовательском интерфейсе есть некоторые проблемы:

Imgur Imgur

В appDelegate.swift я поставил этот код:

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

А в ViewController.swift я использую эти методы для переключения между режимами ориентации:

    func landscapeMode() {
        appDelegate.deviceOrientation = .landscapeLeft
        let value = UIInterfaceOrientation.landscapeLeft.rawValue
        UIDevice.current.setValue(value, forKey: "orientation")
    }

    func portraitMode() {
        appDelegate.deviceOrientation = .portrait
        let value = UIInterfaceOrientation.portrait.rawValue
        UIDevice.current.setValue(value, forKey: "orientation")
    }

Я ожидаю изменения ориентации независимо от текущей ориентации устройства, однако в настоящее время нет должного функционирования в тех случаях, когда устройство ориентировано до действия ориентации (программного обеспечения).

...