您的位置:首页 > 移动开发 > IOS开发

iOS 进阶 第九天(0408)

2016-01-09 17:43 267 查看

0408

makekeyAndVisible解释
一个程序可以有多个Window,但只有一个窗口能够成为主窗口.如图中所示,此时的window2是主窗口.主窗口用处大了.从iOS7开始无论是主窗口还是次窗口,都可以交互,比如文本框输入文字.但在iOS6及其之前的版本,非KeyWindow(非主窗口)是无法交互的,即无法向文本框中输入文字

如果发现一个文本框不能输入文字,那就就要想到这个文本框所在的窗口是不是主窗口



iOS主窗口和非主窗口的表现:



获取当前程序的主窗口



一些总结:



键盘也是在一个窗口Window里面,如果你想更改键盘上的东西,则拿到键盘所在的Window,就能拿到键盘,就能拿到键盘里的子控件,就能更改键盘上的按钮



UINavigationController 压入栈控制器方法



UINavigationController 出栈方法,默认只出当前topViewController,也可以直接pop到指定的ViewController,也可以直接pop到RootViewController



控制器的生命周期



具体如下图所示:



内存警告的处理
1、首先AppDelegate接收到警告



2、然后开始寻找根控制器,看看根控制器的哪个子控制器遇到内存警告了



3、找到收到内存警告的子控制器,做一些处理(可能是SDWebImage清缓存,可能是一些成员变量=nil置空,也可能是释放一些非最高优先级的控制器资源.什么是非最高优先级的控制器,就是不是在当前界面上正在显示的控制器.如果再次返回到了之前释放后的控制器,系统会再次自动创建控制器的view,让控制器复活,调用viewDidLoad方法,执行控制器的完整生命周期.)

下面一个图很明白的说明了内存警告的处理流程

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: