iOS和相關庫的開發大量使用了模型-視圖-控制器(MVC)模式。通常而言,MVC是一種策略,用於分離展示(視圖)、數據(模型)和業務邏輯(控制器)。確切地講,模型是簡單數據,如Person或Address類。視圖負責在屏幕上呈現數據。在iOS開發中,視圖是UIView的一個子類。iOS提供了一個特殊類做爲UIView的控制器,該類被貼切地命名爲UIViewController。html
UIViewController具備兩個重要特徵:每每與一個XIB文件關聯,有一個名爲"view"的UIView類型屬性。經過建立UIViewController的一個子類,能夠獲得一個同名XIB文件,可做爲視圖類使用。默認狀況下,當實例化一個UIViewController子類時,會加載一個同名的XIB。XIB中的根UIView將綁定至UIViewController的view屬性。app
除在UI佈局和邏輯驅動之間提供乾淨的分離外,iOS還提供了大量UIViewController子類,可與其餘UIViewController一塊兒使用(而不是UIView)。佈局
UIViewController控制着view的加載與消失。下面咱們就來分析一下UIViewController是如何加載view的。spa
1.調用initWithNibName進行初始化code
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
2.建立view調用loadView,若是使用代碼建立視圖則在loadView方法裏進行建立。htm
-(void)loadView
3.view加載完成調用viewDidLoad方法。blog
- (void)viewDidLoad
4.view將要顯示調用viewWillAppear方法生命週期
-(void)viewWillAppear:(BOOL)animated
5.view可見時調用viewDidAppear開發
-(void)viewDidAppear:(BOOL)animated
6.view翻轉調用shouldAutorotateit
-(BOOL)shouldAutorotate
7.視圖將要消失調用viewWillDisappear
8.視圖消失調用viewDidDisappear
參考:http://www.cnblogs.com/smileevday/archive/2012/03/05/2380916.html