2016-08-05 13 views
1

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

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

+0

Пожалуйста, улучшите свой вопрос !! Предоставьте фрагмент кода или четко сформулируйте свои намерения. –

+0

Я установил 'func shouldAutorotate() -> Bool' в true для моего ViewController, и теперь я хочу остановить авто-поворот, когда я нахожусь в определенном методе – mafioso

ответ

0

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

func shouldAutorotate() -> Bool 
func supportedInterfaceOrientations() -> UIInterfaceOrientationMask 
func preferredInterfaceOrientationForPresentation() -> UIInterfaceOrientation 
0

Таким образом, вы должны создать подкласс «UINavigationController», осуществлять shouldAutorotate и использовать навигационный контроллер класс в вашем раскадровке.

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

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

    return false 
} 
+0

Я хочу повернуть свой VC, но когда я нахожусь в определенном методе в VC авторотация должна прекратиться – mafioso

+0

. Затем вы можете использовать указанную выше функцию в конкретном VC. – ashmi123

0

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

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

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

сделать один Bool экземпляр и возвращает его значение в shouldAutorotate методе вашего ViewController.

var allowRotate: Bool = true 

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

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