大家都写程序、编程序,有没有注意过要怎样去完善程序和加载程序呢?那么如何将程序优化的更完美,更无缺,作为那那工作在iOS开发幕后的开发者,他们每天都是在做着这样的事,一天天不停的写程序,不停的完善程序。大家所学到的各种的于iOS培训方面的知识,事实大多数都来源于他们的创造!蓝鸥的任务是介绍UIViewController加载和卸载过程!
一、加载过程:
一般情况下调用init方法或者调用initWithNibName方法实例化UIViewController,无论是调用哪个方法都为调用initWithNibName,下面是实现方法:
-(id)initWithNibName:(NSString*)nibNameOrNilbundle:(NSBundle*)nibBundleOrNil
接下来就是用loadView方法来生成UIViewController.view
-(void)loadView
然后调用viewDidLoad方法
-(void)viewDidLoad
如果loadView不能生成UIViewController.view系统将会反复调用loadView及viewDidLoad方法,并且最终调用[superloadView]方法返回UIViewController.view在UINavigationController的POP操作后有时将要显示的UIViewController中的View并没有释放(也有可能释放掉),UIViewController将不会调用上面的三个方法(initWithNibName,loadView,viewDidLoad)而会调用下面这2个方法
-(void)viewWillAppear:(BOOL)animated;
-(void)viewDidAppear:(BOOL)animated;
在iOS5.0中还添加了2个函数:
-(void)viewWillLayoutSubviews;
-(void)viewDidLayoutSubviews;
下面是另外一种方法(loadView和viewDidLoad不被调用)
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiInBnaucTOyEDN5QDNx8CXwEzMxAjMvwFduVWboNWY0RXYvwVbvNmLvR3YxUjL2M3Lc9CX6MHc0RHaiojIsJye.jpg)
二、卸载过程