今业务需求是: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会闪退的。
网友评论