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方法,执行控制器的完整生命周期.)
下面一个图很明白的说明了内存警告的处理流程
相关文章推荐
- 检测IOS的版本信息
- iOS 进阶 第八天(0407)
- iOS开发tableView去掉顶部上部空表区域
- 重新设置系统内部属性
- iOS 进阶 第七天(0403)
- iOS 进阶 第六天(0402)
- iOS 进阶 第五天(0330)
- iOS9 添加自定义.pch
- iOS 进阶 第四天(0329)
- iOS 进阶 第三天(0326)
- iOS 进阶 第二天(0324)
- iOS 进阶 第一天(0323)
- iOS开发tableView去掉顶部上部空表区域
- iOS 基础 第五天(0811)
- iOS 基础 第四天(0809)
- iOS NSPredicate 详解
- block,封装,函数参数,函数的返回值
- iOS 基础 第三天(0808)
- iOS中复杂对象对象的归档返归档
- IOS开发系列——启动页专题【整理,部分原创】