您的位置:首页 > 产品设计 > UI/UE

ios-UI控件精讲之【3】-UIWindow

2016-02-23 22:39 435 查看
原文:http://www.jianshu.com/p/f10f0ed09991

UIWindow简介

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

UIWindow的创建

方式一:通过MainStoryboard创建窗口。系统加载MainStoryboard步骤:创建窗口加载Main.storyboard,并且创建storyboard描述的控制器。把新创建的控制器作为窗口的根控制器显示窗口
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.

// 1.创建窗口
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];

// 2.加载storyboard描述的控制器
// UIStoryboard加载Storyboard文件
// name:需要解析storyboard文件名
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];

// 通过storyboard创建控制器
// instantiateInitialViewController:加载箭头指向的控制器
UIViewController *vc = [storyboard instantiateInitialViewController];

//   UIViewController *vc =  [storyboard instantiateViewControllerWithIdentifier:@"org"];

// 3.设置窗口根控制器
self.window.rootViewController = vc;

// 4.显示窗口
[self.window makeKeyAndVisible];

return YES;
}
方式二:通过代码,在程序启动完成的时候,手动创建窗口
// 程序启动完成的时候调用
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
// 显示窗口必须要做的事情:
// 1.设置窗口的根控制器
// 2.必须强引用
// 3.必须要设置尺寸

// 1.创建窗口
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];

self.window.backgroundColor = [UIColor redColor];

// 2.设置窗口根控制器
UIViewController *vc = [[UIViewController alloc] init];
vc.view.backgroundColor = [UIColor greenColor];
self.window.rootViewController = vc;

//    NSLog(@"%@",self.window);

// 3.显示窗口
// 1.成为应用程序的主窗口application.keyWindow
// 2.显示窗口 self.window.hidden = NO;
[self.window makeKeyAndVisible];
//    self.window.hidden = NO;

//
//    NSLog(@"%@",application.keyWindow);
// 会把跟控制器的view添加到自己上面

return YES;
}

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