ios9 keyWindow为空 nil

在iOS9中遇到一个问题,当一个新window弹框关闭后,keyWindow属性变为nil,导致界面表现异常。解决方法包括重新获取keyWindow,或者创建一个共通方法来处理这种情况。在新window弹框的代码实现中,特别是在关闭临时window时,需要正确设置keyWindow以确保界面状态正常。
摘要由CSDN通过智能技术生成

问题:新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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值