2015-10-27 39 views
0

我有一个应用程序,它由一个包含4个导航控制器的选项卡栏控制器组成。我找不到任何解决方案让导航控制器层级中的一个控制器仅处于横向模式。所有其他控制器都假定为肖像。感谢有关此问题的任何帮助。一个横向控制器

回答

2

在你想成为景观导航控制器的viewDidLoad():,包括:

let value = UIInterfaceOrientation.LandscapeLeft.rawValue 
UIDevice.currentDevice().setValue(value, forKey: "orientation") 

一定要添加以下重写过

override func shouldAutorotate() -> Bool { 
    return true 
} 
+0

我将此代码添加到导航控制器,它不工作在iOS 8,shouldAutorotate从不叫。似乎这是最新iOS中的一个大问题。 – Oleg

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 
} 
相关问题