我是Swift的新手,我在viewController中将方向锁定为肖像时遇到问题。实际上我已经使用我的自定义导航控制器中的代码锁定了它
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
if (self.visibleViewController is ViewController)
{
return UIInterfaceOrientationMask.Portrait
}
return .All
}
一切正常,ViewController被锁定为肖像。问题是在横向模式下从另一个控制器返回此控制器时。 如果我在横向上返回ViewController(从NextViewController返回),那么ViewController将出现在横向中。有什么建议吗?
答案 0 :(得分:7)
在swift 3中,这个解决方案可行
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
if self.window?.rootViewController?.presentedViewController is LockedViewController {
return UIInterfaceOrientationMask.portrait
} else {
return UIInterfaceOrientationMask.all
}
}
更改LockedViewController
以匹配您想要锁定的控制器。
答案 1 :(得分:0)
您可以覆盖以下方法
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
return UIInterfaceOrientationMask.Portrait
}
override func preferredInterfaceOrientationForPresentation() -> UIInterfaceOrientation {
return UIInterfaceOrientation.Portrait
}
然后,在viewDidLoad中,通过添加以下代码强制方向
UIDevice.currentDevice().setValue(UIInterfaceOrientation.Portrait.rawValue, forKey: "orientation")
答案 2 :(得分:0)
对于swift3.0
限制不同视图的不同方向您需要执行以下操作:
在App委托文件中:
func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow?) -> UIInterfaceOrientationMask {
if self.window?.rootViewController?.presentedViewController is OtherViewController {
return UIInterfaceOrientationMask.All;
} else {
return UIInterfaceOrientationMask.Portrait;
}
}