view加载的深入了解
来源:互联网 发布:python 多线程同时启动 编辑:程序博客网 时间:2024/05/17 09:45
View加载无非三种形式:故事板 xib 代码!!!
1.故事板加载:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"TestViewController" bundle:nil];
TestViewController *testVC = [storyboard instantiateInitialViewController];
[self.navigationController pushViewController:testVC animated:YES];
2.xib加载 分三种情况:
a,指定名称XIB加载:
TestViewController *testVC = [[TestViewController alloc] initWithNibName:@"OtherViewController" bundle:nil];
[self.navigationController pushViewController:testVC animated:YES];
b,不指定xib加载 :如果我们不指定xib名称,loadView就会加载与控制器同名的xib(TestViewController.xib)
c,不指定xib加载2:如果把相同名字的xib删除的话 ,当没有指定xib名称,且没有与控制器同名的xib时,会加载前缀与控制器名相同而不带controller的xib(TestView.xib)
3.纯代码加载View就不多说了……
4.===》故事板和xib的不同之处:storyboard加载的是控制器及控制器view,而xib加载的仅仅只是控制器的view
总结:
A,loadView方法:当我们用到控制器view时,就会调用控制器view的get方法,在get方法内部,首先判断view是否已经创建,如果已存在,则直接返回存在的view,如果不存在,则调用控制器的loadView方法,在控制器没有被销毁的情况下,loadView也可能会被执行多次
B,viewDidLoad方法:当控制器的loadView方法执行完毕,view被创建成功后,就会执行viewDidLoad方法,该方法与loadView方法一样,也有可能被执行多次
而在一般的额加载过程中 viewDidLoad方法只是加载一次 加载多次的情况譬如:比如A控制器push出B控制器,此时,窗口显示的是B控制器的view,此时如果收到内存警告,我们一般会将A控制器中没用的变量及view销毁掉,之后当我们从B控制器pop到A控制器时,就会再次执行A控制器的loadView方法与viewDidLoad方法
总结:
1.如果想要通过自定义的代码创建UIView,把这些代码都写入loadView方法里面去。
2.希望通过nib文件创建UIView的话,不要重写loadView方法。
3.viewDidLoad方法被执行两次很有可能是重写了一个不完整的loadView方法导致的 。
- view加载的深入了解
- ios深入了解控制器view的加载
- iOS之深入了解控制器View的加载
- iOS之深入了解控制器View的加载
- iOS之深入了解控制器View的加载
- iOS之深入了解控制器View的加载
- iOS之深入了解控制器View的加载
- 关于view渲染的深入了解
- 深入了解View的绘制流程
- 深入了解View的绘制流程
- 深入了解View的绘制流程
- 深入了解View(一)
- 深入了解View(二)
- 深入了解View(三)
- 深入了解View(四)
- 一步步深入了解View
- Android自定义View的实现方法,深入了解View(四)
- 深入了解CLR的加载过程
- Android中AIDL使用 及 AIDL实现进程间的通信
- 软件外包还是自建团队
- POJ 【1088】 滑雪
- Plug-in "net.sourceforge.jode" was unable to instantiate class "net.sourceforge.jode.JodeClassFileEd
- sql之left join、right join、inner join的区别
- view加载的深入了解
- 数组指针与指针数组
- position:absolute绝对定位居中
- 在jsp中使用CKEditor编辑器
- C++杂谈(一)const限定符与const指针
- Android dp与px互换
- 18. 4Sum
- 各种问题解决转载贴
- [汇编学习笔记][第十四章 端口]