1.2 控制器 view 的创建和加载
|
|
图解:


代码验证:
#import "AppDelegate.h"
#import "TDViewController.h" @interface AppDelegate ()
@end @implementation AppDelegate - (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 创建window
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; // 1.没有同名xib情况下(不用sb 和 xib) alloc init
// 结论:透明的view
TDViewController *vc = [[TDViewController alloc] init]; // 2.通过 storyboard 创建
// 结论:View默认是白色(因为sb拖控制器的时候 就是白色),和指定sb的描述是一致的
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Test" bundle:nil];
TDViewController *vc = [sb instantiateInitialViewController]; // 3.有指定xib情况下创建
// 结论:view和指定xib的描述是一致的
TDViewController *vc =
[[TDViewController alloc] initWithNibName:@"TD" bundle:nil]; // 4.有同名xib情况
// 结论:如果有同名的话,会有优先加载同名的 xib, 因此不需要 initWithNibName
TDViewController* vc = [[TDViewController alloc] init]; // 5.有同名去掉controller的情况
// 结论:如果有同名去掉controller的情况,优先级 会比 同名高
TDViewController *vc = [[TDViewController alloc] init]; self.window.rootViewController = vc;// 设置跟控制器
[self.window makeKeyAndVisible];// 显示 return YES;
}
#import "TDViewController.h" @interface TDViewController ()
@end @implementation TDViewController - (void)viewDidLoad {
[super viewDidLoad];
} - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
} // 6.loadView 此方法用来重写vc的view
// 结论:比其他(xib sb 代码)的优先级都要高
- (void)loadView {
self.view = [[UIView alloc] init];
self.view.backgroundColor = [UIColor purpleColor];
NSLog(@"loadView");
} @end
控制器view的加载



1.2 控制器 view 的创建和加载的更多相关文章
- 创建控制器的3种方式、深入了解view的创建和加载顺序
转载自:http://blog.csdn.net/weisubao/article/details/41012243 (1)创建控制器的3种方式 - (BOOL)application:(UIAppl ...
- IOS 控制器View的创建方式(方式的优先级 、view的延迟加载)
MJViewController的view的创建 的方式的优先级 控制器view的延迟加载 ● 控制器的view是延迟加载的:用到时再加载 ● 可以用isViewLoaded方法判断一个UIViewC ...
- unity创建和加载AssetBundle
先说一下为什么要使用AssetBundle吧,以前做东西一直忽略这个问题,现在认为这个步骤很重要,代码是次要的,决策和为什么这样搞才是关键. 一句话概括吧,AssetBundle实现了资源与服务分离, ...
- iOS之深入了解控制器View的加载
前言 在面试中,面试官可能会问这样的问题,loadView有什么作用,它与viewDidLoad有何区别 首先我们得知道,控制器view是通过懒加载的方式进行加载的,即用到的时候再加载. loadVi ...
- [ IOS ] iOS-控制器View的创建和生命周期
reference to : 1. 控制器View的创建 首先我们来看一下控制器view创建的流程图 控制器view加载.jpeg 从图中我们可以看出,在控制器view加载过程中有两个重要的方法lo ...
- iOS中View的创建过程
ios应用中控制器view的创建方式有三种:storyboard.xib和代码,当APP启动后View的具体加载过程如图(苹果官方): 假设我使用的是WYSViewController控制器 应用启动 ...
- 创建控制器的方法、控制器加载view过程、控制器view的生命周期、多控制器组合
在介绍四大对象的那篇博客中,可以基本了解到程序启动的过程: main-->UIApplicationMain-->创建UIApplication的实例和app代理AppDelegate的实 ...
- iOS开发UI篇—控制器的View的创建
iOS开发UI篇—控制器的View的创建 一.6种创建控制器View的方式 #import "NJAppDelegate.h" #import "NJViewContro ...
- 【转】 iOS开发UI篇—控制器的View的创建
最近对view的周期等还不是非常清楚,就找到顶哥的文章,非常不错,就搬运过来了. 原文: http://www.cnblogs.com/wendingding/p/3770760.html 一.6种创 ...
随机推荐
- springMVC的配置文件路径问题
① <init-param> <param-name>contextConfigLocation</param-name> <param-value>c ...
- 转:CentOS/Debian/Ubuntu一键安装LAMP(Apache/MySQL/PHP)环境
CentOS/Debian/Ubuntu一键安装LAMP(Apache/MySQL/PHP) 今天遇到一个网友提到需要在Linux VPS服务器中安装LAMP(Apache/MySQL/PHP)网站环 ...
- 7九章算法强化班全解--------Hadoop跃爷Spark
------------------------------------------------------------第七周:Follow up question 1,寻找峰值 寻找峰值 描述 笔记 ...
- python之路十四
概述 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏览器 ...
- python中单引号, 双引号,三引号的差异
1. 单引号和双引号用法都是一样的,但是如果字符串里有相同的字符时要使用\进行转义 举例:1) print 'hello'2) print "hello"1和2,结果都是hello ...
- 将jetty嵌入到应用中的简单案例
前面说过jetty最广泛的应用是可以方便的嵌入到应用程序中,而不是作为应用服务器,下面就用最简单的demo来演示一个最简单的应用 1.下载并导入依赖 首先应该建立一个普通的java项目,然后把依赖包导 ...
- PHP之打开文件
今天在看<PHP与MySQL程序设计(第四版)>(ISBN: 9787115253521)的时候,183页,如下图: 尝试:$file = fopen("F:\Books\投行笔 ...
- [Sass]占位符 %placeholder
[Sass]占位符 %placeholder Sass 中的占位符 %placeholder 功能是一个很强大,很实用的一个功能,这也是我非常喜欢的功能.他可以取代以前 CSS 中的基类造成的代码冗余 ...
- 多功能弹窗控件layer
开发网站的时候,如何合理运用好各种插件对开发的帮助是很大的. 免去了我们调试各种交互效果, 比如常用的弹窗.气泡.提示.加载.焦点.标签.导航.折叠等等 这里会推荐几个常用的js插件,丰富多样简单易移 ...
- MongoDB 效率
写入: 插入100万条数据:用InsertMany,耗时16s左右. 读取: 读取300万条数据,耗时3600毫秒.