iOS swift Странная панель вкладок поведения - PullRequest
0 голосов
/ 25 октября 2018

мое приложение работает только в портретном режиме, но несколько 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 без плюса (с меньшим разрешением), предыдущая страница возвращаетсяв портретном режиме, но есть ошибка с панелью вкладок.

picture

у кого-нибудь есть идея?Я понятия не имею, что происходит ..

1 Ответ

0 голосов
/ 26 октября 2018

Я "исправил" проблему, удалив

override func viewWillDisappear(_ animated : Bool) {
super.viewWillDisappear(animated)

if (self.isMovingFromParentViewController) {
    UIDevice.current.setValue(Int(UIInterfaceOrientation.portrait.rawValue), forKey: "orientation")
}

в дочернем представлении

и добавив его в родительское представление.

override func viewDidAppear(_ animated: Bool) {
    UIDevice.current.setValue(Int(UIInterfaceOrientation.portrait.rawValue), forKey: "orientation")
}

Я все еще не понимаю ошибку, но, по крайней мере, есть обходной путь ...

обратите внимание, что если я добавлю этот код в viewWillAppear, я получу ту же ошибку

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