最近在运行的一个老项目一直出现iOS11兼容性的问题,iOS10以及之前的版本都没问题,唯独iOS 11出现各种弹窗不展示,或者不消失的问题,翻看了源代码,发现是上一个人的锅。
iOS10之前
[[[UIApplication sharedApplication] windows].lastObject addSubview:myaleView];
都是可以的。Application的windows最后一个对象总能找到当前的window。
iOS 11并不兼容的原因是这样的写法并不能找到当前的window,用keyWindow就没为题了
[[UIApplication sharedApplication].keyWindow addSubview:myaleView];
总之command+f 或搜索整个项目[[[UIApplication sharedApplication] windows].lastObject addSubview:然后把find改成replace。全部都替换成[[UIApplication sharedApplication].keyWindow addSubview:就OK了。
本文解决了一个老项目在iOS11上遇到的弹窗显示与消失的兼容性问题,通过将代码中使用[[[UIApplication sharedApplication] windows] lastObject]查找当前window的方式替换为[[UIApplication sharedApplication] keyWindow]解决了该问题。
729

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



