Я попробовал следующее:Как программно поворачивать ориентацию в Swift?
UIDevice.currentDevice().setValue(UIInterfaceOrientation.Portrait.rawValue, forKey: "orientation")
на
viewWillAppear
, но он не работает. Как я могу повернуть экран в viewWillAppear?
ОБНОВЛЕНИЕ
Я использую следующий код для блокировки ориентации:
var shouldRotate = true
func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow?) -> Int {
if shouldRotate == true {
return Int(UIInterfaceOrientationMask.Portrait.rawValue)
} else {
return Int(UIInterfaceOrientationMask.LandscapeLeft.rawValue)
}
}
и в моем первом контроллере в viewWillAppear я поставил:
if let appDelegate = UIApplication.sharedApplication().delegate as? AppDelegate {
appDelegate.shouldRotate = true
}
в моем втором контроллере:
if let appDelegate = UIApplication.sharedApplication().delegate as? AppDelegate {
appDelegate.shouldRotate = false
}
так, когда я вернулся из второго контроллера к первому:
я повернуть его влево - не вращается, вращение назад направо - ничего, повернуть налево, снова - она вращается.
Как это исправить?
это дает мне следующую ошибку: 'Переопределение метода с селекторных«supportedInterfaceOrientations»имеет несовместимый тип«() -> UIInterfaceOrientationMask'' –
Это синтаксис Xcode 7 в, пардон – Quanlong
'UIInterfaceOrientationMask' не конвертируется в Int ошибки –