仅允许一个视图控制器的所有方向

时间:2015-04-15 16:30:09

标签: ios xcode swift orientation uiinterfaceorientation

我知道hereherehere已经提出了这个问题。我尝试了所有可能的方法,但没有成功。

我正在尝试在Swift(iOS 8)中开发一个应用程序,其中只有一个视图控制器可以在所有方向上查看,其他只在纵向中查看。

为此,我在Target-> General-> Device Orientation中仅启用了Portrait模式(因为我希望应用程序仅在纵向模式下运行,但一个视图控制器除外)。

我已将以下代码添加到我想要在所有方向上操作的视图控制器中:

override func supportedInterfaceOrientations() -> Int {
    return Int(UIInterfaceOrientationMask.All.rawValue)
}

override func preferredInterfaceOrientationForPresentation() -> UIInterfaceOrientation {
    return UIInterfaceOrientation.LandscapeLeft;
}

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

但无法在横向模式下旋转它。

2 个答案:

答案 0 :(得分:3)

执行以下操作:

  1. 在“常规信息屏幕”中启用所需的方向
  2. 在每个ViewController
  3. ,用true或false覆盖自转旋转功能 (true表示应该轮播的false表示其他人:

    override var shouldAutorotate: Bool {
        return true
    }
    
  4. 希望有所帮助:)

答案 1 :(得分:0)

在你想要的所有方向的相关viewController中尝试这个,在viewWillAppear中:

 let value = UIInterfaceOrientationMask.All.rawValue

 UIDevice.currentDevice().setValue(value, forKey: "orientation") 

并且不要忘记在Target-> General->设备方向中允许方向

试一试