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