iOS視圖控制對(duì)象生命周期:
init榔至、viewDidLoad、viewWillAppear欺劳、viewDidAppear唧取、viewWillDisappear、viewDidDisappear的區(qū)別及用途
init-初始化程序
viewDidLoad-加載視圖
viewWillAppear-UIViewController對(duì)象的視圖即將加入窗口時(shí)調(diào)用划提;
viewDidApper-UIViewController對(duì)象的視圖已經(jīng)加入到窗口時(shí)調(diào)用枫弟;
viewWillDisappear-UIViewController對(duì)象的視圖即將消失、被覆蓋或是隱藏時(shí)調(diào)用鹏往;
viewDidDisappear-UIViewController對(duì)象的視圖已經(jīng)消失淡诗、被覆蓋或是隱藏時(shí)調(diào)用;
viewVillUnload-當(dāng)內(nèi)存過低時(shí)掸犬,需要釋放一些不需要使用的視圖時(shí)袜漩,即將釋放時(shí)調(diào)用;
viewDidUnload-當(dāng)內(nèi)存過低湾碎,釋放一些不需要的視圖時(shí)調(diào)用宙攻。
init、viewDidLoad介褥、viewWillAppear座掘、viewDidAppear、viewWillDisappear柔滔、viewDidDisappear的執(zhí)行順序:
從程序的log來(lái)看:
2012-10-19 15:51:44.811inHyron[483:b903] init
2012-10-19 15:51:54.081inHyron[483:b903] viewDidLoad
2012-10-19 15:51:54.082inHyron[483:b903] viewVillAppear
2012-10-19 15:51:54.084 inHyron[483:b903] viewDidAppear
很明顯溢陪,先執(zhí)行init、然后執(zhí)行viewDidLoad睛廊,然后是viewWillAppear最后是viewDidAppear形真,這樣視圖就創(chuàng)建好了,當(dāng)視圖消失或者被覆蓋的時(shí)候:
2012-10-19 15:54:14.557inHyron[483:b903] viewWillDisappear
2012-10-19 15:54:14.558inHyron[483:b903] viewDidDisappear
這樣一來(lái)視圖就消失了超全,當(dāng)模擬內(nèi)存警告的時(shí)候:
2012-10-19 15:55:14.333inHyron[483:b903] Received simulated memory warning.
2012-10-19 15:55:14.334inHyron[483:b903] viewWillUnload
2012-10-19 15:55:14.335 inHyron[483:b903]viewDidUnload
從log可以看出咆霜,當(dāng)視圖控制對(duì)象收到內(nèi)存警告的時(shí)候邓馒,程序會(huì)執(zhí)行viewWillUnload最后是執(zhí)行viewDidUnload。