从横向启动应用程序时将纵向方向锁定为 IOS

Lock Portrait Orientation in IOS on Application Boot from Landscape

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

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

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

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

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

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