UIWindow

UIWindow是一种特殊的UIView,通常在一个app中通常都会有一个UIWindow.

iOS程序启动完毕后,创建的第一个视图控件就是UIWindow;

接着创建控制器的view.

最后将控制器的view添加到UIWindow上

于是控制器的view就显示在屏幕上了

一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow

也就说,没有UIWindow,就看不见任何UI界面

Snip20150831_13.png

Snip20150831_14.png

添加UIView到UIWindow中两种常见方式:

// 直接将view添加到UIWindow中,但并不会理会view对应的UIViewController- (void)addSubview:(UIView*)view;// 自动将rootViewController的view添加到UIWindow中,负责管理rootViewController的生命周期@property(nonatomic,retain)UIViewController*rootViewController;

常用方法

// 让当前UIWindow变成keyWindow(主窗口)- (void)makeKeyWindow;// 让当前UIWindow变成keyWindow,并显示出来- (void)makeKeyAndVisible;

UIWindow的获得

// 在本应用中打开的UIWindow列表,这样就可以接触应用中的任何一个UIView对象(平时输入文字弹出的键盘,就处在一个新的UIWindow中)[UIApplicationsharedApplication].windows// 用来接收键盘以及非触摸类的消息事件的UIWindow,而且程序中每个时刻只能有一个UIWindow是keyWindow.  如果某个UIWindow内部的文本框不能输入文字,  可能是因为这个UIWindow不是keyWindow.[UIApplicationsharedApplication].keyWindow// 获得某个UIView所在的UIWindowview.window

四大对象关系图

Snip20150831_15.png

推荐拓展阅读

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • UIWindow是Cocoa框架的重要组件之一,所有的UIView都要通过UIWindow来进行展现,没有UIWi...
    文兴阅读 10,401评论 3 33
  • UIView的功能 负责渲染区域的内容,并且响应该区域内发生的触摸事件 UIWindow 在iOS App中,UI...
    小蘑菇2阅读 4,138评论 4 5
  • 一、问题背景 最近需求量放缓,想起了以前曾经later的小需求,也就是弹出来的AlertView中间的文本框输入一...
    唐笛_Dylan阅读 18,628评论 6 29
  • 我们在不同行业应用分析场景中,其分析任务并不是一次性的,并不是针对某个特定的问题,进行一次具体的、可衡量的、可执行...
    Smart熊大阅读 7,106评论 0 0
  • 项目管理的五个过程和九大知识领域 项目是为完成某一独特的产品或服务所做的一次性努力。根 据这个定义,项目就具有了目...
    iOS的Developer阅读 5,987评论 1 18