Как программно повернуть ориентацию в 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)
    }
}

Swift 4.0

  private 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
}

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

Я вращаю его влево - не вращается, вращаюсь назад вправо - ничего, вращаюсь влево, снова - он вращается.

Как я могу это исправить?