3

我正在制作一个仅在播放视频时才支持横向的应用程序。否则,所有场景仅支持纵向。我在项目设置中检查了纵向、横向和横向。我在 ViewControllers 中编写了以下代码,我想将其限制为仅纵向。

override func viewWillAppear(animated: Bool) {
    let value = UIInterfaceOrientation.Portrait.rawValue
    UIDevice.currentDevice().setValue(value, forKey: "orientation")
}

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

override func supportedInterfaceOrientations() -> Int {
    return UIInterfaceOrientation.Portrait.rawValue
}

不过,当我按下(Command + 向右或向左箭头)时,模拟器会旋转。我没有设备,所以我必须在模拟器中测试它。

请帮忙!谢谢!

4

2 回答 2

0

它是父导航控制器决定其内容是否应该旋转或注释。

您将需要覆盖 UINavigationController 并有类似的东西

override func shouldAutorotate() -> Bool {
    return self.topViewController.shouldAutorotae()
}

override func supportedInterfaceOrientations() -> Int {
    return self.topViewController.shouldAutorotae()
}
于 2015-09-23T18:41:40.777 回答
0

有两件事要检查。首先,检查您的 info.plist 文件并确保您已删除 iPhone 和 iPad 的肖像。我遇到了同样的问题,这是因为我没有删除 iPad 的“纵向”选项。看这里:

在此处输入图像描述

其次,下面的代码可以提供帮助。但是,如果您有导航控制器,它可能无法正常工作。

override var shouldAutorotate: Bool {
    return true
}
于 2016-12-03T16:42:32.177 回答