iOS和相关库的开发大量使用了模型-视图-控制器(MVC)模式。一般而言,MVC是一种策略,用于分离展现(视图)、数据(模型)和业务逻辑(控制器)。确切地讲,模型是简单数据,如Person或Address类。视图负责在屏幕上呈现数据。在iOS开发中,视图是UIView的一个子类。iOS提供了一个特殊类作为UIView的控制器,该类被贴切地命名为UIViewController。
UIViewController具有两个重要特征:往往与一个XIB文件关联,有一个名为"view"的UIView类型属性。通过创建UIViewController的一个子类,可以得到一个同名XIB文件,可作为视图类使用。默认情况下,当实例化一个UIViewController子类时,会加载一个同名的XIB。XIB中的根UIView将绑定至UIViewController的view属性。
除在UI布局和逻辑驱动之间提供干净的分离外,iOS还提供了大量UIViewController子类,可与其他UIViewController一起使用(而不是UIView)。
UIViewController控制着view的加载与消失。下面我们就来分析一下UIViewController是如何加载view的。
1.调用initWithNibName进行初始化
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
2.创建view调用loadView,如果使用代码创建视图则在loadView方法里进行创建。
-(void)loadView
3.view加载完成调用viewDidLoad方法。
- (void)viewDidLoad
4.view将要显示调用viewWillAppear方法
-(void)viewWillAppear:(BOOL)animated
5.view可见时调用viewDidAppear
-(void)viewDidAppear:(BOOL)animated
6.view翻转调用shouldAutorotate
-(BOOL)shouldAutorotate
7.视图将要消失调用viewWillDisappear
8.视图消失调用viewDidDisappear
参考:http://www.cnblogs.com/smileevday/archive/2012/03/05/2380916.html