我有一个应用程序,它包含一个Tab栏控制器,其中包含4个导航控制器。我找不到任何解决方案,导航控制器的层次结构中只有一个控制器只能处于横向模式。所有其他控制器都假设是肖像。感谢您对此问题的任何帮助。
答案 0 :(得分:2)
在您希望成为横向的导航控制器的viewDidLoad():
中,包括:
let value = UIInterfaceOrientation.LandscapeLeft.rawValue
UIDevice.currentDevice().setValue(value, forKey: "orientation")
一定要添加以下覆盖
override func shouldAutorotate() -> Bool {
return true
}
答案 1 :(得分:0)
所以我尝试了以下解决方案,它对我有用:
在AppDelegate.swift中:
var currViewController: UIViewController?
func application(application: UIApplication, supportedInterfaceOrientationForWindows window: UIWindow?) -> UIInterfaceOrientationMask {
if currViewController is MyCustomController {
return UIInterfaceOrientationMask.LandscapeLeft
} else {
return UIInterfaceOrientationMask.Portrait
}
}
在MyCustomController.swift中:
let oAppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
override func viewDidLoad(){
super.viewDidLoad()
oAppDelegate.currViewController = self
}