UIWindow

UIWindow

UIWindow —> UIView

一、常用方法

1.- (void)makeKeyWindow;

让当前UIWindow变成keyWindow(主窗口)

2.- (void)makeKeyAndVisible;

让当前UIWindow变成keyWindow,并显示出来

注意:

1.makeKeyAndVisible就意味着,让window成为主窗口,并且可见。

2.窗口可以设置很多个,但是UIWindow有且只有一个主窗口。

3.[UIApplication sharedApplication].keyWindow

用来接收键盘以及非触摸类的消息事件的UIWindow,而且程序中每个时刻只能有一个UIWindow是keyWindow。如果某个UIWindow内部的文本框不能输入文字,可能是因为这个UIWindow不是keyWindow,主要针对IOS6。

4.[UIApplication sharedApplication].windows

打印出屏幕上有多少window。

注意:

平时输入文字弹出的键盘,就处在一个新的UIWindow中,拿到键盘所在的window就可以修改键盘的按钮。

UIWindow只有一个主窗口,UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow,控制器不具备主动显示的功能,只有UIWindow才能显示到屏幕上,控制器要依赖UIWindow。

/**

*  程序启动完毕就会调用一次

*/

- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

// 1.创建window

self.window =
[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

// 2.设置window的背景色

self.window.backgroundColor =
[UIColor whiteColor];

// 3.显示window

[self.window makeKeyAndVisible];

return YES;

}

注意:

不推荐下面这种写法,原因是,

1.MjOneViewController是一个局部变量方法调用完之后局部变量释放,但是控制器的View还在UIWindow上,这样会出现野指针错误。

2.旋转事件也会有影响,[self.window addSubview:one.view];这种方法,相当于一个普通的View添加到UIWindow上,UIApplication并不知道根控制器。

MjOneViewController *one = [[MjOneViewController alloc] init];

[self.window addSubview:one.view];

3.在创建window的时候,要注意。

/**

*  程序启动完毕就会调用一次

*/

- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

// 1.创建window

UIWindow *window
= [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

// 2.设置window的背景色

window .backgroundColor =
[UIColor whiteColor];

// 3.显示window

[window makeKeyAndVisible];

return YES;

}

这时候,window是不能显示到窗口上的,因为这时候的window是哥局部变量,当程序启动完成之后,就会被销毁。

因此要加上,self.window
= window。window是强引用的,防止window在创建完毕就被销毁。

4.一个窗口只有一个控制器。

self.window.rootViewController
= [[UIViewController
alloc]
init];

时间: 2024-10-29 19:09:53

UIWindow的相关文章

iOS开发-UI (一)补充 UIWindow UIView UIlabel

之前忘了把这些整理出来,现在补充一下,应该放在前面学习的 知识点: 1.UI的初步认识 2.UIWindow 3.UIView 4.UIlabel ======================== UI的初步认识 1.什么是UI(*) UI即User Interface(用户界面)的简称.UI设计则是指对软 件的人机交互.操作逻辑.界面美观的整体设计.好的UI设 计不仅是让软件变得有个性有品味,还要让软件的操作变得 舒适.简单.自由.充分体现软件的定位和特点. 2.第一个UI工程 1)UI工程的

walker代理深入浅出——程序的启动原理(下)(探究 UIWindow)

上一节主要讲解了程序的启动原理UIApplication 的启动,以及 main 函数的执行,现在主要讲解界面的加载以及执行部分. UIWindow 下面先看看Apple的官方文档 Apple官方文档 UIWindow继承自UIView,UIWindow是一种特殊的UIView,通常在一个程序中只会有一个UIWindow,但可以手动创建多个UIWindow,同时加到程序里面.即使有多个UIWindow对象,也只有一个UIWindow可以接受到用户的触屏事件(即主窗口). iOS程序启动完毕后,先

UIWindow ,UIlable

1.创建window 1 //1.创建window,UIScreen是屏幕类,创建和屏幕等大的窗口 2 self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 3 //2.背景颜色 4 //self.window.backgroundColor = [UIColor greenColor]; 9 10 self.window.backgroundColor = [UIColor whiteColor

分析UIWindow

转载自:http://www.cnblogs.com/YouXianMing/p/3811741.html The UIWindow class defines an object known as a window that manages and coordinates the views an app displays on a device screen. Unless an app can display content on an external device screen, an

UIScreen, UIWindow

模仿书上或网上的例子,每次最开始就是 在 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 加: self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; self.window.rootViewController = [[WXC

UIWindow小常识

•UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow • •iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了 • •一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow • •也就说,没有UIWindow,就看不见任何UI界面 一般在程序启动完毕时创建和设置Window 所以在这个UIApplication代理方法中创建W

iOS 关于UIWindow 的认识

UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了 一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow.也就说,没有UIWindow,就看不见任何UI界面 如何获取UIWindow (1)[UIApplication sharedApplication].windows

UiView与UIWindow的详解

一,窗口与视图 1.在iOS中,使用窗口与视图在屏幕上显示应用程序的内容.窗口本身不具有任何可见 的内容,但它对于应用程序的视图提供一个基本的容器.视图定义你想要用的一些内容 填充的窗口的一部分.例如,可能显示图像. 文本. 形状或某种组合的视图.还可以使 用视图来组织和管理的其他视图. 窗口 ·什么是窗口? ·每个应用程序至少需要一个窗口,通常窗口用UIWindow类的实例来表示.注意 UIWindow继承自UIView. ·window对象有以下职责: ·它包含了应用程序的可视化的内容 ·它

iOS 中的UIWindow

使用Xcode新建一个工程后,Xcode会自动新建一些文件,其中有AppDelegate.h,AppDelegate.m,ViewController.h,ViewController.m,Main.storyboard.AppDelegate.h中有一个对象是UIWindow,代码如下: @property (strong, nonatomic) UIWindow *window; 那么,这个window的作用是什么呢? 实际上,一个app之所以能够显示在屏幕上,就是因为有该UIWindow对