Отключить автоматическое вращение для специального метода в 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