强制旋转一个UIViewController
作者:互联网
刚才V2ex上问了这么一个问题: http://www.v2ex.com/t/97577#reply7
然后就随手搜了下 stackoverflow
在iOS5的年代是有这么个API:
1 |
|
但是在iOS 6开始,苹果把这个API 私有了。
于是乎,可以用OC runtime 绕过去,但是:
有可能审核会被拒掉
做法就是用 objc/message.h 强制对这个类发消息
1 |
|
或者
1 2 |
|
都可以达到同样的效果。
这个bug的原因
其实,这不应该叫做bug的,应该说是开发者不理解iOS 设备的屏幕旋转 那三个API的触发条件。
触发条件仅有两个:
- 设备方向改变
- 当rootViewController 改变的时候
于是乎,一直在push pop是不会触发rootViewController的旋转检测的。 这个时候只能用各种怪招了,这里还有一个不用私有API也能实现的作法:
在viewWillAppear里面加上这东西:
1 2 3 4 5 |
|
转载于:https://www.cnblogs.com/UncleJoke/p/3977835.html
标签:UIInterfaceOrientationPortrait,触发,currentDevice,旋转,objc,API,UIDevice,强制,UIViewCo 来源: https://blog.csdn.net/weixin_34334744/article/details/94317492