在通用应用程序中为iPhone的拆分视图控制器禁用横向

时间:2016-03-14 10:01:13

标签: ios objective-c iphone swift ipad

我有一个UISplitViewController的通用应用。我希望iPad版本能够在纵向和横向上工作,但我只希望应用程序在iPhone上以纵向工作。我尝试在我的主视图控制器上使用以下内容,但它不起作用:

override func shouldAutorotate() -> Bool {
    return false
}

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
    return UIInterfaceOrientationMask.Portrait
}

我认为问题在于拆分视图控制器会覆盖这两种方法。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我认为这就是你要找的东西

  [splitViewController setHidesMasterViewInPortrait:NO];

答案 1 :(得分:1)

我设法通过在AppDelegate启动时设置支持的应用界面方向来解决这个问题:

let deviceIdiom = UIScreen.mainScreen().traitCollection.userInterfaceIdiom

func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow?) -> UIInterfaceOrientationMask {
    if deviceIdiom == .Pad {
        return UIInterfaceOrientationMask.All
    }
    return UIInterfaceOrientationMask.Portrait
}