我想将设备在特定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)
}
答案 0 :(得分:1)
“在iOS 8中,所有与旋转相关的方法都已弃用”(请参阅UIViewController上的文档)。这可能就是为什么它不适合你。
我认为Apple已经做到这一点,以保持用户在整个应用程序中的体验更加一致。
答案 1 :(得分:0)
我想出了问题,因为我使用的是SWRevealViewController,父VC会覆盖子视图的旋转设置。
因此,我只是将其子类化并按预期调整自动旋转和方向设置。