iOS强制单一界面 屏幕旋转大致两种方案吧,
1
一种是在Appdelegate中设置一个值 allowrotation,用来控制窗口的方向
- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window { //添加 判断 return UIInterfaceOrientationMaskAll;}
然后再在 要进入的页面设置 allowRotation的值,然后设置设备的方向进行旋转。
详细见文章 iOS - 强制某个页面横屏,返回竖屏 - 简书
当然旋转完后,UI的适配之类的需要自己调整, 具体的效果自己调整一番即可,不难,对于监测屏幕旋转的方法系统的traitCollection有提供控制器和视图的方法
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
可以自己判断一下,或者根据size 判断pad的横竖屏之类的,也可以进行视图的刷新,此外就是在viewwillappear 和 viewdidlayoutsubviews这些方法中更新,
2 方法二
首先先对屏幕旋转的层级了解一番
iOS设置某个界面强制横屏,进入就横屏 - 爱生活爱代码 - 博客园
第二种方式本人只测试了 present 有导航控制器的页面强制竖屏,至于有tabbarcontroller 等的三级控制器以及push操作并未操作
总体上是,一下三个方法,但在不同的控制器中实现不一样
tabbarcontroller中的设置
导航控制器中
具体控制器中
如果有解得请详细阅读本文的链接,此外,自己操作一番,当然很重要的一点,是需要设置一样屏幕支持旋转的方向,以及supportedInterfaceOrientations 和 preferredInterfaceOrientationForPresentation 返回值是否有交集的方向