@seneast
Python-dev

Как выключить поворот для одного контроллера?

Дано: два контроллера, главный и дочерний. Главный всегда должен сохранять портретную ориентацию, а дочерний должен поворачиваться при повороте телефоне. Так же дочерний контроллер должен быть полупрозрачным.

FirstViewController.swift
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
    return .portrait
}
override var shouldAutorotate: Bool {
    return false
}


SecondViewController.swift
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
    return .allButUpsideDown
}
override var shouldAutorotate: Bool {
    return true
}


Открытие дочернего контроллера:
let secondViewController = self.storyboard?.instantiateViewController(withIdentifier: "SecondViewController") as! SecondViewController
secondViewController.modalPresentationStyle = .custom
self.present(secondViewController, animated: true, completion: nil)


Проблема в том что при открытии дочернего контроллера и при повороте экрана так же поворачивается главный контроллер.

Тестовый проект: https://github.com/sieroshtan/RotationTest
  • Вопрос задан
  • 503 просмотра
Пригласить эксперта
Ответы на вопрос 1
попробуй для первого контроллера реализовать метод preferredInterfaceOrientationForPresentation и возвращай оттуда .portrait, раньше работало))

func preferredInterfaceOrientationForPresentation() -> UIInterfaceOrientation {
        return .portrait
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы