UIViewController traitCollection - проблема авторотации - PullRequest
0 голосов
/ 18 ноября 2018

Я использую statusBarOrientation, чтобы определить ориентацию моего UIViewController и настроить представления соответственно в функции viewWillTransition (to size: ...)

   override var supportedInterfaceOrientations: UIInterfaceOrientationMask {

    var orientations:UIInterfaceOrientationMask = .landscapeRight

    if  !self.disableAutoRotation {
        switch Settings().orient {
        case .landscape:
            orientations = .landscape
        case .portrait:
            orientations = .portrait
        default:
            orientations = .all
        }
    }



    return orientations
}

 override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {

    let orientation = UIApplication.shared.statusBarOrientation

    NSLog("View will transition to \(size), \(orientation.rawValue)")
    super.viewWillTransition(to: size, with: coordinator)


    coordinator.animate(alongsideTransition: { [unowned self] (_) in

    ...
    }
}

Проблема: эта функция вызывается, даже если это представление контроллера представленияне на вершине.Иногда я ограничиваю вращение этого контроллера вида портретным или альбомным в зависимости от настроек пользователя.Другие контроллеры представления, которые представляет этот контроллер представления, могут свободно вращаться в любой ориентации.И когда они вращаются, они нарушают и этот контроллер вида.Как я могу предотвратить это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...