一个横向控制器

时间:2015-10-27 16:58:32

标签: ios uinavigationcontroller orientation landscape

我有一个应用程序,它包含一个Tab栏控制器,其中包含4个导航控制器。我找不到任何解决方案,导航控制器的层次结构中只有一个控制器只能处于横向模式。所有其他控制器都假设是肖像。感谢您对此问题的任何帮助。

2 个答案:

答案 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
}