iOS锁定特定的ViewController到特定的方向

时间:2015-07-11 20:48:46

标签: ios xcode swift rotation

我想将设备在特定ViewController中的方向锁定为仅纵向,但没有一个可用的解决方案正常工作。它嵌入在UINavigationController中。

我将它部署到iOS7,在一般设置中,横向和纵向都被检查,因为我希望它可以为其他VC而不是特定的VC进行旋转。

extension UINavigationController {
public override func shouldAutorotate() -> Bool {

    return visibleViewController.shouldAutorotate()
}

public override func supportedInterfaceOrientations() -> Int {
    return visibleViewController.supportedInterfaceOrientations()
}
}

这部分代码在我的ViewController类

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

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

2 个答案:

答案 0 :(得分:1)

“在iOS 8中,所有与旋转相关的方法都已弃用”(请参阅​​UIViewController上的文档)。这可能就是为什么它不适合你。

我认为Apple已经做到这一点,以保持用户在整个应用程序中的体验更加一致。

答案 1 :(得分:0)

我想出了问题,因为我使用的是SWRevealViewController,父VC会覆盖子视图的旋转设置。

因此,我只是将其子类化并按预期调整自动旋转和方向设置。