在景观中需要一些控制器

时间:2016-04-15 14:05:22

标签: ios swift rotation landscape

我有许多ViewControllers的复杂应用程序。整个应用程序设计为纵向模式并锁定它。

现在我需要部分应用才能在横向展示内容。一切都很好,不包括一个场景:

我在控制器上,它被锁定为纵向并且设备处于横向位置 - 我导航到启用了横向的新控制器。然后新控制器不会旋转到横向。如果我再次将手机旋转为纵向和横向,控制器将正确旋转(如果我以纵向进入设备的新控制器,一切都很好,窗口旋转,如果我旋转设备。 我试过了:

let value = UIDevice.currentDevice().orientation.rawValue
UIDevice.currentDevice().setValue(value, forKey: "orientation")

在viewWillAppear中,但它没有用(我认为它无法正常工作,因为UIDevice.currentDevice().orientation已经处于请求的方向。

1 个答案:

答案 0 :(得分:1)

尝试将此添加到您的代码中,看看您是否得到了您期望的结果。

override func viewDidLoad() {
   let value = UIInterfaceOrientation.Portrait.rawValue
   UIDevice.currentDevice().setValue(value, forKey: "orientation")
   shouldAutorotate()
}


override func shouldAutorotate() -> Bool {
    switch UIDevice.currentDevice().orientation {
    case .Portrait, .PortraitUpsideDown, .Unknown:
        return true
    default:
        return false
    }
}