Objective-C 学习记录 - 34

1.ios应用启动完整过程

执行main函数
执行UIApplicationMain函数,创建UIApplication对象,并设置UIApplication的代理(AppDelegate)
开启事件循环(主运行循环,死循环:保证应用程序不退出)
加载Info.plist(根据配置加载界面)
应用程序启动完毕,开始监听系统事件(AppDelegate)

系统加载界面过程:
根据Info.plist中的Main storyboard file base name加载(main.)storyboard
创建一个窗口(UIWindow)
把(main.)storyboard中箭头指向(Storyboard Entry Point)的控制器设置为窗口的根控制器(rootViewController)
显示窗口(把窗口的根控制器的view添加到窗口)

2.UIWindow
UIWindow是一种特殊的UIView,键盘、状态栏等都是UIWindow。如果添加了多个窗口,控制器会自动把状态栏隐藏掉,解决办法是把状态栏给应用程序管理手动创建窗口(在AppDelegate的didFinishLaunchingWithOptions:方法中):

//@property (strong, nonatomic) UIWindow *window;

self.window = [[UIWindow alloc] init];  //初始化窗口
//默认效果等于: self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];

UIViewController *VC = [[UIViewController alloc] init];
VC.view.backgroundColor = [UIColor redColor];
self.window.rootViewController = VC;  //设置窗口的根控制器
[self.window makeKeyAndVisible];  //显示窗口

UIWindow的层级(windowLevel):

//UIWindowLevelAlert > UIWindowLevelStatusBar > UIWindowLevelNormal,默认为UIWindowLevelNormal
self.window.windowLevel = UIWindowLevelNormal;

makeKeyAndVisible方法的作用:
设置为应用程序的主窗口(keyWindow);
显示窗口(hidden = NO);
把窗口的根控制器的view添加到窗口上([self.window addSubview:rootViewController.view])

 

3.UIStoryboard的加载

//创建storyboard对象
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"customStoryboard" bundle:nil];
//将VC设置为storyboard的箭头指向的控制器并加载
UIViewController *VC = [storyboard instantiateInitialViewController];
//加载storyboardID为VC2ID的控制器
UIViewController *VC2 = [storyboard instantiateViewControllerWithIdentifier:@"VC2ID"];
//将VC设置为window的根控制器
self.window.rootViewController = VC;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值