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; }
相关文章推荐
- mybaties注解requestParam("id") String[] ids
- UIView基础笔记
- RabbitMQ Exchange & Queue Design Trade-off
- LeetCode-304. Range Sum Query 2D - Immutable
- [Locked] Verify Preorder Sequence in Binary Search Tree
- 使用phantomjs进行无界面UI自动化测试
- sequence有关问题
- hdu3530Subsequence【单调队列优化dp】2010多校联合
- 334. Increasing Triplet Subsequence【M】【69】
- STL_queue
- ios不同版本下的UILabel自动换行问题
- STL_deque
- 1101. Quick Sort (25)
- UITableViewControl的编辑(删除,添加,移动)
- IOS-53-图片、button等空间是否可拉伸设置;以及UITabelView的headerView设置
- 等待控件(UIActivityIndicatorView)不转动的原因
- Universal-Image-Loader(UIL)图片加载框架使用简单介绍
- IOS-52-UITableView中cell分割线左对齐(解决iOS8版本适配问题)
- Rocky's Requirements for ideal HW
- hdu 5288 OO’s Sequence