2015-10-27 72 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 
} 
相關問題