本文并非最终版本,如有更新或更正会第一时间置顶,联系方式详见文末
如果觉得本文内容过长,请前往本人 “简书”
加载优先顺序:
|
控制器view的延迟加载:
|
图解:
代码验证:
1 #import "AppDelegate.h" 2 #import "TDViewController.h" 3 4 @interface AppDelegate () 5 @end 6 7 @implementation AppDelegate 8 9 - (BOOL)application:(UIApplication *)application 10 didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 11 12 // 创建window 13 self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 14 15 // 1.没有同名xib情况下(不用sb 和 xib) alloc init 16 // 结论:透明的view 17 TDViewController *vc = [[TDViewController alloc] init]; 18 19 // 2.通过 storyboard 创建 20 // 结论:View默认是白色(因为sb拖控制器的时候 就是白色),和指定sb的描述是一致的 21 UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Test" bundle:nil]; 22 TDViewController *vc = [sb instantiateInitialViewController]; 23 24 // 3.有指定xib情况下创建 25 // 结论:view和指定xib的描述是一致的 26 TDViewController *vc = 27 [[TDViewController alloc] initWithNibName:@"TD" bundle:nil]; 28 29 // 4.有同名xib情况 30 // 结论:如果有同名的话,会有优先加载同名的 xib, 因此不需要 initWithNibName 31 TDViewController* vc = [[TDViewController alloc] init]; 32 33 // 5.有同名去掉controller的情况 34 // 结论:如果有同名去掉controller的情况,优先级 会比 同名高 35 TDViewController *vc = [[TDViewController alloc] init]; 36 37 self.window.rootViewController = vc;// 设置跟控制器 38 [self.window makeKeyAndVisible];// 显示 39 40 return YES; 41 }
1 #import "TDViewController.h" 2 3 @interface TDViewController () 4 @end 5 6 @implementation TDViewController 7 8 - (void)viewDidLoad { 9 [super viewDidLoad]; 10 } 11 12 - (void)didReceiveMemoryWarning { 13 [super didReceiveMemoryWarning]; 14 } 15 16 // 6.loadView 此方法用来重写vc的view 17 // 结论:比其他(xib sb 代码)的优先级都要高 18 - (void)loadView { 19 self.view = [[UIView alloc] init]; 20 self.view.backgroundColor = [UIColor purpleColor]; 21 NSLog(@"loadView"); 22 } 23 24 @end
控制器view的加载
loadView方法仅在用代码创建视图控制器的界面时使用
在loadView方法中根据实际需求来确定到底是否需要调用[super loadView]
Screen & Window & View Controller的关系
![](https://images2015.cnblogs.com/blog/731328/201601/731328-20160121231504953-1029854120.png)
内存警告处理
![](https://images2015.cnblogs.com/blog/731328/201601/731328-20160121231632062-137406608.png)