【问题标题】:Need some controllers in landscape需要一些横向控制器
【发布时间】:2016-08-07 13:23:10
【问题描述】:

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

现在我需要应用程序的一部分才能横向显示内容。一切正常,除了一种情况:

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

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

在 viewWillAppear 中,但它不起作用(我想它不起作用,因为 UIDevice.currentDevice().orientation 已经处于请求的方向。

【问题讨论】:

    标签: ios swift rotation landscape


    【解决方案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
        }
    }
    

    【讨论】:

    • 不幸的是它没有帮助。如果我正确阅读了这段代码,它会阻止显示风景。我几乎需要相反的情况 - 假设当我一直在横向拿着手机我使用我的应用程序时,我需要旋转屏幕,当我进入应用程序的一部分时,在哪里启用横向。如果我将手机旋转为纵向并返回横向,它可以工作。
    • 这是我在应用程序中使用的代码,如果设备处于横向模式,它会更改纵向模式。然后在我的 segue 中,我允许它旋转回横向。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    • 2013-08-26
    • 1970-01-01
    • 1970-01-01
    • 2012-12-21
    相关资源
    最近更新 更多