UIScreen是硬件显示器的软件表示。UIWindow是用户界面的载体。
一个UIScreen可以有多个UIWindow。一个UIWindow必须对应一个UIScreen,否者这个屏幕就是黑色的。一个app可以有多个window,但是只能有一个keywindow。
keywindow:如果一个window可以接收键盘和非触摸事件,那么这个就叫做keywindow。成为keywindow只需要调用makeKeyAndVisible()方法。
1、keywindow会放在同级别level中在最前面展示。因此,keywindow不一定显示在最前面,可能在z轴方向上有一个window在keywindow上面。
2、keywindow是会改变的。例如uialertview弹出时keywindow就不上controller中的window。
[[[UIApplication sharedApplication]delegate]window]一直存在
viewController.view.window不一定存在
[UIApplication sharedApplication].keyWindow不一定存在