iOS 关于屏幕旋转shouldAutorotate

本文探讨了在iOS应用中实现屏幕旋转控制的方法,包括配置支持方向、使用不同控制器来管理旋转行为,并解决了在特定场景下无法正确限制旋转的问题。通过在AppDelegate和根试图控制器中设置代码,实现了根据不同菜单控制器的需求灵活地控制屏幕旋转。
摘要由CSDN通过智能技术生成

iOS中关于shouldAutorotate(屏幕旋转的问题);

在这之前必须在你的Info里面配置你的支持方向信息:


targets -> General -> Deployment Info

我们的项目需要在个别的menuController里面是需要旋转,有的menuController是不需要旋转。我就尝试写个demo看是不是能旋转,不旋转;在demo里面测试是OK的。当我进入工程里面,跟新如下代码,运行的时候发现是错误的。本来是不旋转,可是还是可以旋转的,很郁闷。我就尝试在plist只支持竖屏,shouldAutorotate为YES,应该是旋转的,但是不旋转。我就在想为什么demo是可以的!我就开始翻资料


图1

立马就找到了一个方法,如下


找到的是6之前的方法

但是这个方法是在6之后被 NS_DEPRECATED_IOS(2_0, 6_0) 弃用了。加进controller里面各种尝试是不成功的。

后来找到了下面的连接,上面是说是跟你的tabbarController和navigationController有关系的。也就是你程序一开始的入口是谁控制的(你的工程的根试图控制器)!我在我的根试图控制器加上 图1的代码之后测试是成功的!

但是想在他的menuController里面不支持旋转的的时候,shouldAutorotate为NO,只支持竖屏的时候,他还是可以旋转的。但是我如果是模态推出用navigationController控制的时候shouldAutorotate为NO,只支持竖屏,是OK的。很是郁闷网上查了各种方法,没有找到相应的结果。我目前就是需要旋转的就用单独的navigationController去控制,不明白是哪里写错了还是没有看到相关的API。希望可以有人做到,因为项目进度表的原因,暂时就想这样写了。等待项目完成或者不加班的时候,再重新整理一下关于iOS屏幕旋转的问题!如果你有更好的解决方法,可以密我哦!我的邮箱maomaoxiansheng@outlook.com 、maomaoxiansheng@gmail.com,谢谢了!

下面的是补充,上面这样写的有时候是有问题的,我们测试出来的伪BUG,当你的手机不是竖屏的时候启动应用程序,你的启动页面是横屏的,到了里面因为设置了有的是横屏有的是竖屏,就会出现很大的问题,后来我们在targets -> General -> Deployment Info或者plist里面的配置支持竖屏,在你的AppDelegate里面,用代码去控制。


附上这三个方法

然后在你想竖屏想横屏的地方写上相应的横竖屏的代码就可以了!

上面写得不够清楚,在模态推出之后发现有时候不管用,我在看API的时候也没有看到要注意的地方。后来发现在ViewController的shouldAutorotate要在View出现之前调用才会管用。而且这个方法没有set方法。创建一个继承UINavigationController的类


.h



.m

然后再模态推出的时候



初始化NavigationController

之后在这个listVC里面写上


是否支持旋转

UITabBarController


.h



.m

初始化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值