那些年 iOS 升级踩过的坑!( 二 )
最早的实现
众所周知,苹果一个比较坑的地方就是开放的SDK是比较有限的,特别是当时的iOS SDK 4.3。很多功能通过开放的API很不好实现,上述的功能就是一个例子。当然,这难不倒我策天才般的iOS开发同学。一会就试出来实际上UIViewController上有一个私有方法(private method)就叫[UIViewController rotate],提供的功能刚好就是我们需要的。但遗憾的是由于苹果审核机制,它是不允许上架app中使用iOS SDK的私有方法的。(至今我还是不明白为什么这个方法不给开放出来给大家用。)经过进一步的研究,我们尝试出来的一个解决方法是这样的:
图2/6
就是在当前的UIViewController上present一个新的UIViewController,然后马上再dismiss掉。看起来好像啥事都没做。实际上这几行代码的唯一作用是让系统(UIKit)重新评估(re-evaluate)当前UIViewController应该处于的方向,也就是说旋转相关的系统回调函数[UIViewController shouldAutorotate]和[UIViewController supportedInterfaceOrientations]会被再次调用。此时我们可以趁机在这两个回调函数中返回合适的值,使得当前的UIViewController的方向强制变成我们所希望的。
推荐阅读
- |原神2.5卡池升级,大批新角色将提前上线,神里绫人好消息来了!
- |传世群英版你那些你不知道的魅力
- 电子竞技|世界赛结束了,细说那些年我们追过的电竞小说
- 杨玉环|杨玉环虎年限定美哭,孙尚香异界灵契升级,备好一颗水晶给扁鹊
- 传奇世界|传奇世界中那些最让你兴奋的瞬间有哪些?你扮演了什么角色?
- 电影|《英雄联盟:双城之战》开播,那些绝美画质游戏,何时能够动漫化
- |盘点那些让玩家汗毛猛竖的游戏角色,回答里个个都是人才
- 孙尚香|王者荣耀:嫦娥台词方案2选1,新传说升级,玉环喜提虎年限定
- 大话西游2|大话西游2:回忆那些年的“神豪”之子曰左左右
- 王者荣耀|王者荣耀:异界灵契技能特效升级优化,拒霜思语音二选一,上官婉儿或获得亚运会专属