一尘不染

覆盖应该在Swift 3中不起作用

swift

我正在尝试防止旋转一个UIViewController,但我无法做到这一点。

我正在做这样的事情:

open override var shouldAutorotate: Bool {
    get {
        return false
    }
}

override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
    get {
        return .portrait
    }
}

UIViewControler剧照旋转。UIViewController在以模态打开的UINavigationController内部。

从这里开始,我已经看了很多问题,但没有答案适合我。

在Swift 2中,我曾经重写,shouldAutorotate但在Swift 3中,该功能不再存在。

在Swift 3中,我该怎么做?


阅读 184

收藏
2020-07-07

共1个答案

一尘不染

我不知道为什么要投票才能结束这个问题,如果我能多次重现这种行为。该UIViewController是内部的UINavigationController模态打开。

这是我为解决问题所做的。

我创建这个类和我一组的UINavigationController是拥有这个UIViewController,我想阻止旋转

class NavigationController: UINavigationController {

    override var shouldAutorotate: Bool {
        return false
    }

    override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
        return .portrait
    }

}

就是这样,它对我有用

2020-07-07