一般情况下,一个项目要么可以横屏要么不可以横屏,但是也有些APP不是这样的,整个项目只支持竖屏但是需要加载游戏界面或者是必须横屏播放视频之类的,就要强制把某些页面设置为横屏:
首先要在我们项目的AppDelegate.h里边定义一个变量来设定屏幕的横屏或是竖屏
@property(nonatomic,assign)NSInteger rotation_Style;
然后在AppDelegate.m里边重写方法:
- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
if (_rotation_Style == 1) {//如果是1就让屏幕强制横屏
return UIInterfaceOrientationMaskLandscapeRight|UIInterfaceOrientationMaskLandscapeLeft;
}
else
{
return (UIInterfaceOrientationMaskPortrait);
}
}
然后在需要强制横屏的页面导入AppDelegate.h头文件
然后两句代码:
AppDelegate * appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
appDelegate.rotation_Style = 1;
搞定!
当然,如果就这样,那么会出问题的,就是你返回上个页面,上个页面就会抽风一样也是横屏了:
所以在返回的方法中也加上两句代码:
AppDelegate * appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
appDelegate.rotation_Style = 3;//这里可以随便写,只要不是1
本文介绍了如何在Objective-C开发的iOS项目中,针对特定页面实现强制横屏显示。通过在AppDelegate中设置rotation_Style变量,并重写supportedInterfaceOrientationsForWindow方法,根据rotation_Style的值来判断是否强制横屏。在需要横屏的页面,设置rotation_Style为1,然后在返回上一页时恢复rotation_Style,避免影响其他页面的显示。
1481

被折叠的 条评论
为什么被折叠?



