我有一个应用程序,其中嵌入了一个NavigationController中的几个VC。在NavBar中返回锁定设备方向失败
我需要所有VC都以肖像方向锁定,只有纵向和横向都锁定一个VC。
我已经尝试不同的方法,这一次是为我工作:
extension UINavigationController {
public override func supportedInterfaceOrientations() -> Int {
return visibleViewController.supportedInterfaceOrientations()
}
public override func shouldAutorotate() -> Bool {
return visibleViewController.shouldAutorotate()
}
}
然后我修改每个视图控制器是这样的:
class ViewController: UIViewController {
override func supportedInterfaceOrientations() -> Int {
return Int(UIInterfaceOrientationMask.Portrait.rawValue)
}
}
一切都很好,当我打开应用程序,从一个VC走向另一个。应该只有肖像的视图只有肖像。然后我打开未修改的视图,并按预期更改interfaceOrientation。
但然后让我们说我留在景观的最后未修改的观点和我的NavBar按后退按钮,去到以前的控制器(这已修改为只有人像)。 VC的布局显示为横向。
如果我一直按下按钮,所有其他VC的行为就像他们从未被告知只是肖像一样。
我用这篇文章Korey Hinton, Lock Screen Rotation
你是对的,过渡是相当粗糙的,但至少它为我做了这份工作,非常感谢你抽出宝贵时间回答,Korey,我真的很感激它! – alahab
@alahab没问题:) –