关于 VC 执行顺序
生活随笔
收集整理的這篇文章主要介紹了
关于 VC 执行顺序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
?1.對于單獨的一個試圖控制器,它的執行順序如下:
?(1).如果有XIB文件的話,首先加載XIB文件,即先執行- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{}方法
?(2).沒有xib文件的話,會執行- (void)viewDidLoad{}方法(還有一個loadview方法,但是一般不在這個方法里面寫代碼)
?(3).接下來 會執行-(void)viewWillAppear:(BOOL)animated{}
?(4).再下來會執行-(void)viewDidAppear:(BOOL)animated{}
?當要離開此試圖控制器時 會執行
(5)-(void)viewWillDisappear:(BOOL)animated{}
?(6).最后-(void)viewDidDisappear:(BOOL)animated{}
?所以基本我們的業務邏輯都是根據上面的大致順序來進行。
?
2.對于兩個視圖控時器,比如VC1 和VC2 ,VC1通過導航push到VC2,那么執行順序又是什么呢?
?(1)首先 如果VC2有XIB文件的話,先執行VC2- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{}方法
?(2)VC2沒有XIB文件的話,首先會執行VC2的- (void)viewDidLoad{}方法
?(3).接下來會執行VC2的-(void)viewWillAppear:(BOOL)animated{}方法
?(4).然后會執行VC1的-(void)viewWillDisappear:(BOOL)animated{}
?(5).然后是VC1的-(void)viewDidDisappear:(BOOL)animated{}
?(6).下來會接著執行VC2的(void)viewDidAppear:(BOOL)animated{}
?3.另外關于兩個的試圖控制器間屬性傳參,參數的賦值 是寫在push前還是后也是有講究的哈。其實還是和上面執行順序有關。如果傳遞的參數想在- (void)viewDidLoad{}方法或- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{}方法中使用,屬性的賦值要寫在push之前,否則你會發現傳過來的是個空值。。。
總結
以上是生活随笔為你收集整理的关于 VC 执行顺序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: npu是什么(NPU是什么)
- 下一篇: c++中射线表示_干货中的干货 万人收藏