iOS设置项目启动默认方向

今业务需求是:app启动的时候加载的是一个横向的游戏,根据后台参数,加载新的windows.rootviewcontroller,这个新的vc里面放了一个wkwebview,加载一个竖屏的游戏。先修改app启动的时候的默认方向,如下图:

第一步:先把info.plist文件里面的device orientation 全部都不勾选


第二部:在info.plist文件里面,加一个新的字段:

key值:Initial interface orientation

value值:Landscape (left home button)

如下图:

app启动默认的是一个横的方向

第三部:在appdelegate里面从写下面两个方法:

- (BOOL)shouldAutorotate {

    return YES;

}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations {

    return UIInterfaceOrientationMaskAll;

}


这两个方法,重写系统的,可以通过代码来手动控制设备的方向

第四部:在对应的想要修改为竖屏的vc里面重新跳转设备的方向为竖屏

- (BOOL)shouldAutorotate {

    return YES;

}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations {

    return UIInterfaceOrientationMaskPortrait;

}

同样重写了,和appdelegate里面一样的控制设备方向的方法。

PS:重写系统控制设备方向的方法,第一个先在appdelegate里面写,这样子,就可以通过代码来接管系统里面的控制设备的方向的操作。第二个在想要改变设备方向的vc里面来调转具体的设备方向。


注意:如果device orientation里面没有UIInterfaceOrientationMaskPortrait,并且,device orientation的勾都没有去掉(也就是有其他的设备方向存在),这个时候要是把设备方向修改为没有的UIInterfaceOrientationMaskPortrait,app会闪退的。

你可能感兴趣的:(iOS设置项目启动默认方向)