мое приложение работает только в портретном режиме, но несколько viewcontroller (для чтения в формате pdf) имеют опцию быть в альбомном режиме.Я использую эту функцию, чтобы разрешить ландшафтный режим
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
if let rootViewController = self.topViewControllerWithRootViewController(rootViewController: window?.rootViewController) {
if (rootViewController.responds(to: Selector(("canRotate")))) {
// Unlock landscape view orientations for this view controller
return .allButUpsideDown;
}
}
// Only allow portrait (standard behaviour)
return .portrait;
}
, а затем в ландшафтном режиме, если мы нажмем кнопку назад, я заставлю предыдущий контроллер просмотра вернуться в портретный режим, используя эту функцию
override func viewWillDisappear(_ animated : Bool) {
super.viewWillDisappear(animated)
if (self.isMovingFromParentViewController) {
UIDevice.current.setValue(Int(UIInterfaceOrientation.portrait.rawValue), forKey: "orientation")
}
}
он отлично работает на iPhone (плюс), предыдущая страница возвращается в портретный режим и панель вкладок в порядке, но есть ошибка, которая появляется только на iPhone без плюса (с меньшим разрешением), предыдущая страница возвращаетсяв портретном режиме, но есть ошибка с панелью вкладок.
у кого-нибудь есть идея?Я понятия не имею, что происходит ..