强制以纵向状态旋转UIViewController

时间:2018-09-05 02:10:28

标签: ios objective-c uiviewcontroller landscape device-orientation

在这种环境下 (将支持方向固定为“项目”配置中的“纵向”)

enter image description here

您可以在Landscape中显示特定的UIViewController吗?

1 个答案:

答案 0 :(得分:1)

简短的回答是,您不能这样做,因为根据Apple文档here

  

系统与视图控制器支持的方向相交   应用支持的方向(由Info.plist确定)   文件或应用程序委托的   application(_:supportedInterfaceOrientationsFor :)方法)和   设备支持的方向来确定是否旋转。

要实现所需的功能,您还应将允许的方向也设置为横向,然后在视图控制器中实现以下内容,以允许纵向或横向(或同时允许):

override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
    return UIInterfaceOrientationMask.portrait//or UIInterfaceOrientationMask.landscape
  }

然后要强制指定方向,可以将方向设置为UIDevice:

UIDevice.current.setValue(UIInterfaceOrientation.landscapeLeft.rawValue, forKey: "orientation")