Я представляю UIViewController
(Позволяет называть его контроллером А) по току UIViewController
(Позволяет называть его контроллером Б).Я хочу, чтобы контроллер A подарок на альбомной ориентации.Когда я устанавливаю overCurrentContext
, он не меняет ориентацию по умолчанию (мне нужно повернуть устройство влево / вправо), однако, если я комментирую код overCurrentContext
, все работает.
var landscapeOrientation = false
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
if landscapeOrientation{
return UIInterfaceOrientationMask.landscapeRight
}else{
return UIInterfaceOrientationMask.portrait
}
}
Как я представляю новый контроллер и устанавливаю ориентацию.
let delegate = UIApplication.shared.delegate as! AppDelegate
delegate.landscapeOrientation = true
let controller = ToolTipWithCheckImageViewController()
controller.view.backgroundColor = .clear
controller.modalPresentationStyle = .overCurrentContext //Which causes the bug
controller.modalTransitionStyle = .crossDissolve
topController.present(controller, animated:true)
PS: Я использую это delegate.landspaceOrientation=true
также на некоторых других контроллерах, и потому что я не представляю его с overCurrentContext,все работает, поэтому с этим кодом НЕ проблема:)
P.S2: Родительский контроллер - UINavigationController
Я думаю, у этого вопроса есть проблемысо мной, но я не могу понять, предоставленное решение. Может ли контроллер представления, представленный модально в текущем контексте (UIModalPresentationStyleOverCurrentContext), вращаться на устройстве?