iOS 关于window释放

iOS 关于window释放

首先明确 Window这个含义
通俗的讲 比如

  1. mac下的桌面 是一切控件的承载器
  2. windows 下的桌面也是类似的属性

iOS应用程序里 一个app 不一定只有一个window
怎么看app里面的Window的个数[UIApplication sharedApplication].windows

下面重点 一般什么时候会用到释放window ?
重新登陆 一般同学写 肯定是
app.window.rootViewController = [[ViewController2 alloc]init];
事实上这样只是重置了window 在arc下也不可能以为释放 按c理解以前rootViewController已经泄漏了
那么正确的释放方式如下
AppDelegate * app = [UIApplication sharedApplication].delegate ;
//释放
app.window.rootViewController = nil;
[app.window resignKeyWindow];
[app.window removeFromSuperview];
//重新加载window
app.window = [[UIWindow alloc]initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)];
app.window.rootViewController = [[ViewController2 alloc]init];
//刷新Window视图
[app.window makeKeyAndVisible];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值