我们一个项目兼容ios12版本的UIApplication.shared.delegate?.window 使用正常,但是另一个是兼容到ios13版本的项目,因为使用了大量window而失效。此处记录一下解决办法~
正常ok的项目方法断点中:
- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions;
查scene结构,打印截图如下:
此时我再检查有问题项目的下的scene结构,并解决的方法截图如下:
重点步骤就是
1、>=ios13版本:scene的window赋值
2、<ios13:AppDelegate下的window赋值
这样就兼容了ios13上下的两种window
具体代码,额 很简单。。。。
window = UIWindow(windowScene: val)
MLAppDelegateService.shared?.window = window
MLAppDelegateService.shared?.mainWindow = window