问题:新window弹框消失后 keyWindow为null,造成面表现不正常。
解决方案:①重新获取keyWindow。
if(![[UIApplication sharedApplication] keyWindow]){
UIWindow *keyWindow = [[[UIApplication sharedApplication] delegate] window];
[keyWindow makeKeyAndVisible];
}
或者写成共通方法
+ (UIWindow *)getKeyWindow{
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 9.0f){
return [[[UIApplication sharedApplication] delegate] window];
}else{
UIWindow *window = [UIApplication sharedApplication].keyWindow;
if (!window) {
return [[[UIApplication sharedApplication] delegate] window];
}
return window;
}
}
新window弹框部分代码
UIViewController *tempRootVC = [[UIViewController alloc] init];
if(@available(ios 13.0, *)){
UIWindow *window = [UIApplication sharedApplication].keyWindow;
tempRootVC = window.rootViewControlle