Родительский UIViewController не меняет ориентацию после увольнения - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть один UIViewController (называемый B), который я хочу представить (принудительно) в альбомной ориентации.Все остальные UIViewControllers представлены в портретном режиме.В моих настройках проекта выбран только портретный режим.Моя проблема в том, что когда я вернулся из B в A. Он завис в ландшафтном режиме.

Внутри AppDelegate:

func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
    if #available(iOS 10.0, *) {
        if self.window?.rootViewController?.presentedViewController is CheckImageCameraViewController {
            return UIInterfaceOrientationMask.landscapeRight
        } else {
            return UIInterfaceOrientationMask.portrait
        }
    } else {
        // Fallback on earlier versions
    }
    return UIInterfaceOrientationMask.portrait
}

В контроллере A;

let controllerB = ControllerB()
self.present(controllerB,animated:true,completion:nil)

В контроллере B;

override func viewDidLoad() {
    super.viewDidLoad()


    let value = UIInterfaceOrientation.landscapeRight.rawValue
    UIDevice.current.setValue(value, forKey: "orientation")
}
func closeButtonTapped(){
self.dismiss()
}

EDIT: Когда он включен, если я перемещаю телефон, чтобы изменить ориентацию.Это выглядит в портрете.

1 Ответ

0 голосов
/ 15 ноября 2018

Переопределить viewWillAppear() в A, проверьте ориентацию и примите соответствующие меры.

...