shouldAutorotate - >假,仍然模拟器旋转

时间:2015-09-23 17:33:30

标签: ios swift orientation autorotate shouldautorotate

我正在制作一款仅在播放视频时支持横向方向的应用。否则,所有场景仅支持纵向。我在项目设置中左右检查了肖像,风景。我在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 +向右或向左箭头)时,模拟器会旋转。我没有设备,所以我必须在模拟器中测试它。

请帮忙!谢谢!

2 个答案:

答案 0 :(得分:-1)

父导航控制器决定其内容是应该旋转还是记录。

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

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

override func supportedInterfaceOrientations() -> Int {
    return self.topViewController.shouldAutorotae()
}

答案 1 :(得分:-1)

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

enter image description here

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

override var shouldAutorotate: Bool {
    return true
}