iOS程序启动过程和UIWidnow介绍
2016-01-26 10:28
435 查看
一、iOS程序的完整启动过程(有storyboard)
1.先执行main函数,main内部会调用UIApplicationMain函数
2.UIApplicationMain函数里面做了什么事情:
1> 创建UIApplication对象
2> 创建UIApplication的delegate对象-----MJAppDelegate
3> 开启一个消息循环
* 每监听到对应的系统事件时,就会通知MJAppDelegate
4> 为应用程序创建一个UIWindow对象(继承自UIView),设置为MJAppDelegate的window属性
5> 加载Info.plist文件,读取最主要storyboard文件的名称
6> 加载最主要的storyboard文件,创建白色箭头所指的控制器对象
7> 并且设置第6步创建的控制器为UIWindow的rootViewController属性(根控制器)
8> 展示UIWindow,展示之前会将添加rootViewController的view到UIWindow上面(在这一步才会创建控制器的view)
[window addSubview: window.rootViewControler.view];
二、UIWidnow
1.常见方法
1> 成为主窗口:[window makeKeyWindow];
2> 显示、并且成为主窗口:[window makeKeyAndVisible];
3> 仅仅是显示窗口:window.hidden =
NO;
2.主窗口
1> 一个iOS app只能有一个主窗口(keyWindow),只有keyWindow才能接受文本框的输入事件
2> 如何访问主窗口: [UIApplication sharedApplication].keyWindow
3>app中所有的窗口: [UIApplication sharedApplication].windows
4.屏幕的旋转事件
1> 当屏幕旋转,UIApplication对象接受到旋转事件,接着会通知keyWindow
2> 最终,旋转事件传递到UIWidnow身上,UIWindow会通知rootViewControler,rootViewControler自己会决定要不要做相应的旋转操作
1.先执行main函数,main内部会调用UIApplicationMain函数
2.UIApplicationMain函数里面做了什么事情:
1> 创建UIApplication对象
2> 创建UIApplication的delegate对象-----MJAppDelegate
3> 开启一个消息循环
* 每监听到对应的系统事件时,就会通知MJAppDelegate
4> 为应用程序创建一个UIWindow对象(继承自UIView),设置为MJAppDelegate的window属性
5> 加载Info.plist文件,读取最主要storyboard文件的名称
6> 加载最主要的storyboard文件,创建白色箭头所指的控制器对象
7> 并且设置第6步创建的控制器为UIWindow的rootViewController属性(根控制器)
8> 展示UIWindow,展示之前会将添加rootViewController的view到UIWindow上面(在这一步才会创建控制器的view)
[window addSubview: window.rootViewControler.view];
二、UIWidnow
1.常见方法
1> 成为主窗口:[window makeKeyWindow];
2> 显示、并且成为主窗口:[window makeKeyAndVisible];
3> 仅仅是显示窗口:window.hidden =
NO;
2.主窗口
1> 一个iOS app只能有一个主窗口(keyWindow),只有keyWindow才能接受文本框的输入事件
2> 如何访问主窗口: [UIApplication sharedApplication].keyWindow
3>app中所有的窗口: [UIApplication sharedApplication].windows
4.屏幕的旋转事件
1> 当屏幕旋转,UIApplication对象接受到旋转事件,接着会通知keyWindow
2> 最终,旋转事件传递到UIWidnow身上,UIWindow会通知rootViewControler,rootViewControler自己会决定要不要做相应的旋转操作
相关文章推荐
- data buffer与CGImage/UIImage互转
- UITableView获取cell的row值(解决自定义cell里的button通过点击无法获得cell的indexpath的问题)
- hdu 1242 Rescue(优先队列)
- iOS开发笔记--设置UITextField键盘上return key不可点击
- 一篇文章掌握RequireJS常用知识
- iOS开发笔记--UILabel的相关属性设置
- iOS开发笔记--UILabel和UITextView自适应文本高度代码
- iOS开发笔记--UIImageView的属性之animationImages详解
- 2016太原UI设计师郭文军图标的制作原则,面试必考
- iOS开发笔记--UILabel显示不同的字体和颜色
- iOS开发笔记--UIView中的坐标转换
- lightoj 1012 - Guilty Prince
- iOS应用UI开发中的字体和按钮控件使用指南
- IOS开发-UIView之动画效果的实现方法
- iOS UISearchController
- 《iOS Human Interface Guidelines》——Quick Look
- UIColor,CGColor,CIColor三者的区别和联系
- C#中SqlCommandBuilder批量数据增加修改
- 在 Windows 10 上安装 Arduino 开发环境
- Codeforces Round #328 (Div. 2) 592 B. The Monster and the Squirrel