【问题标题】:Lock Portrait Orientation in IOS on Application Boot from Landscape在应用程序从横向启动时在 IOS 中锁定纵向方向
【发布时间】:2015-05-18 20:42:16
【问题描述】:

所以我遇到了一个有趣的小错误。我有一个带有几个子视图的 UINavigationController,它将显示我们只想在纵向视图中查看。为了实现这一点,我们将 UINavigationController 子类化并添加了以下内容:

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

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

这很好用,并且应用程序被锁定为纵向并且无法旋转,除非用户将设备侧向转动,然后从横向加载应用程序。预期的结果是设备以纵向加载,但它以横向加载,并且永远不会让用户旋转回纵向。

我能够复制这一点的唯一方法是从已经处于横向模式的设备加载应用程序。有任何想法吗?有很多关于设备方向的帖子,但我找不到关于应用程序启动的帖子。

【问题讨论】:

    标签: ios iphone ipad swift orientation


    【解决方案1】:

    删除自动旋转,它应该可以正常工作。

    【讨论】:

    • 这是一个很好的答案。它所需要的只是详细说明。
    • 所以似乎不需要 shouldAutoRotate 的原因是,如果您从横向模式启动,并且您将 autoRotate 锁定为 false,那么当它读取到您只支持纵向模式时查看,它会尝试自动旋转回应有的状态,但是由于您禁用了自动旋转,它不会让您这样做。所以 shouldAutoRotate 在这种情况下是危险的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    • 1970-01-01
    • 2014-09-16
    • 1970-01-01
    相关资源
    最近更新 更多