创建的第一个对象是:UIApplication
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//创建窗口,根据屏幕大小设置
UIWindow *window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
// 设置window背景颜色
window.backgroundColor = [UIColor redColor];
// 创建控制器
UIViewController *mainController = [[UIViewController alloc] init];
// 给窗口指定根视图控制器
window.rootViewController = mainController;
// 让当前窗口成为主窗口并显示
[window makeKeyAndVisible];
return YES;
}
UIWindow *keyW = application.keyWindows;
// 让当前UIWindow变成keyWindow,并显示出来
- (void)makeKeyAndVisible;
/// 获取当前应用程序的主窗口
- [UIApplication sharedApplication].keyWindow
// 获取view对象所在的窗口
- view.window
// 获取当前程序所有的window
- [UIApplication sharedApplication].windows
//默认是[UIScreen mainScreen]。修改屏幕的操作代价非常大
//NS_AVAILABLE_IOS(3_2)
@property(nonatomic,retain) UIScreen *screen ;
//// default = 0.0,窗口级别越高,显示越靠前
@property(nonatomic) UIWindowLevel windowLevel;
//是否是主窗口
@property(nonatomic,readonly,getter=isKeyWindow)BOOLkeyWindow;
//为子类提供。不要直接调用
- (void)becomeKeyWindow;
//为子类提供。不要直接调用
- (void)resignKeyWindow;
//成为主窗口
- (void)makeKeyWindow;
//简化方法,让窗口成为主窗口并且可见,如果要不可见,可以使用view的hidden属性
- (void)makeKeyAndVisible;
第一个创建的对象是UIApplication UIApplication绑定一个AppDelegate对象 AppDelegate对象中有一个window属性(UIWindow) UIWindow对象中有一个rootViewController的属性 rootViewController设置成要显示的UIViewController 最后 显示出UIViewController对象的view
Paste_Image.png