【问题标题】:supportedInterfaceOrientations not called on iOS 13在 iOS 13 上未调用supportedInterfaceOrientations
【发布时间】:2019-12-23 15:16:15
【问题描述】:

在 iOS 13 上,使用 segue(例如“Show”)推送视图控制器会导致在呈现的视图控制器 (VC2) 上不调用supportedInterfaceOrientations。因此,即使supportedInterfaceOrientations 仅返回.landscape,控制器也会自动旋转到纵向模式。但是,如果我们通过任何 segue 从这个控制器(VC2)推送另一个视图控制器(VC3),VC3 不会自动旋转。

我发现的唯一解决方法是使用模态演示样式 fullScreen 将 VC2 呈现为模态视图控制器。这不是我在 iPad 设备上想要的,所以寻找它在 iOS 13 上发生这种情况的原因并修复。

【问题讨论】:

    标签: ios uiviewcontroller uikit ios13


    【解决方案1】:

    您必须将视图控制器上的“演示样式”设置为全屏,然后将调用supportedInterface 覆盖。

    或查看此以获取更多信息

    How to present a modal atop the current view in Swift

    【讨论】:

    • 我刚刚尝试了这个(Xcode 12.4/Swift 5/iOS 12.4)和一个常规的UIViewController(之前设置为“自动”)和一个“显示”segue,但功能仍然不是调用。
    • 您在导航控制器下拥有所有这些吗?如果是这样,那可能会拦截更改
    • 不,至少不直接。有一个打开的“视图控制器 2”,但 VC3 和 VC4(我想防止其方向更改)是用 segue(performSegue,它是 VC2 -> VC3 -> VC4)打开的。还有一个 VC1,我也不希望用户打开它,但在它的类中添加代码也不起作用 - 我必须为加载 VC1 的初始 UINavigationController 创建一个类并在那里添加代码。但是该控制器直接加载 VC,而不是像 VC4 那样通过多个 segues。
    猜你喜欢
    • 1970-01-01
    • 2013-12-05
    • 1970-01-01
    • 2020-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多