Отключить автоматическое вращение для специального метода в Swift?

Есть ли способ остановить автоматическое вращение в Swift для конкретного метода?

Хотите остановить автоматическое вращение при выполнении метода ViewController.

4 ответа

Сделай один Bool экземпляр и вернуть его значение в shouldAutorotate метод вашего ViewController,

var allowRotate: Bool = true

override func shouldAutorotate() -> Bool {
    return allowRotate
}

Теперь установите allowRotate в false внутри вашего метода, где вы хотите остановить вращение после этого установите его в true чтобы позволить это снова.

Используйте эти методы в ViewController каждого представления, которое должно быть портретным:

override func shouldAutorotate() -> Bool {
    return false
}

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
    return UIInterfaceOrientationMask.Portrait
}

Поэтому вам нужно создать подкласс UINavigationController, реализовать shouldAutorotate и использовать класс контроллера навигации в своей раскадровке.

override func shouldAutorotate() -> Bool {
    let currentViewController = self.topViewController

    if test.isKindOfClass(NewviewController.self) {
        return true
    }

    return false
}

Посмотрите на эти методы в UIViewController:

func shouldAutorotate() -> Bool
func supportedInterfaceOrientations() -> UIInterfaceOrientationMask
func preferredInterfaceOrientationForPresentation() -> UIInterfaceOrientation
Другие вопросы по тегам