控制器生命周期

ViewController的生命周期中各方法執(zhí)行流程如下:

init—>loadView—>viewDidLoad—>viewWillApper—>viewDidApper—>viewWillDisapper—>viewDidDisapper—>viewWillUnload->viewDidUnload—>dealloc

UIViewController生命周期:

1)- (void)viewDidLoad刃泡;

一個APP在載入時會先通過調(diào)用loadView方法或者載入IB中創(chuàng)建的初始界面的方法纺座,將視圖載入到內(nèi)存中容劳。然后會調(diào)用viewDidLoad方法來進(jìn)行進(jìn)一步的設(shè)置。通常涧至,我們對于各種初始數(shù)據(jù)的載入贩绕,初始設(shè)定等很多內(nèi)容碑隆,都會在這個方法中實(shí)現(xiàn)州袒,所以這個方法是一個很常用,很重要的方法递鹉,這個時候約束還沒有生效盟步,在這里拿到的使用約束的控件的frame是假的。

但是要注意躏结,這個方法只會在APP剛開始加載的時候調(diào)用一次却盘,以后都不會再調(diào)用它了,所以只能用來做初始設(shè)置媳拴。

2) - (void)viewDidUnload;

在內(nèi)存足夠的情況下黄橘,軟件的視圖通常會一直保存在內(nèi)存中,但是如果內(nèi)存不夠屈溉,一些沒有正在顯示的viewcontroller就會收到內(nèi)存不夠的警告塞关,然后就會釋放自己擁有的視圖,以達(dá)到釋放內(nèi)存的目的子巾。但是系統(tǒng)只會釋放內(nèi)存帆赢,并不會釋放對象的所有權(quán),所以通常我們需要在這里將不需要在內(nèi)存中保留的對象釋放所有權(quán)砰左,也就是將其指針置為nil匿醒。

這個方法通常并不會在視圖變換的時候被調(diào)用,而只會在系統(tǒng)退出或者收到內(nèi)存警告的時候才會被調(diào)用缠导。但是由于我們需要保證在收到內(nèi)存警告的時候能夠?qū)ζ渥鞒龇磻?yīng),所以這個方法通常我們都需要去實(shí)現(xiàn)溉痢。

另外僻造,即使在設(shè)備上按了Home鍵之后,系統(tǒng)也不一定會調(diào)用這個方法孩饼,因?yàn)镮OS4之后髓削,系統(tǒng)允許將APP在后臺掛起,并將其繼續(xù)滯留在內(nèi)存中镀娶,因此立膛,viewcontroller并不會調(diào)用這個方法來清除內(nèi)存。

3)- (void)viewWillAppear:(BOOL)animated;

系統(tǒng)在載入所有數(shù)據(jù)后,將會在屏幕上顯示視圖宝泵,這時會先調(diào)用這個方法好啰。通常我們會利用這個方法,對即將顯示的視圖做進(jìn)一步的設(shè)置儿奶。例如框往,我們可以利用這個方法來設(shè)置設(shè)備不同方向時該如何顯示。

另外一方面闯捎,當(dāng)APP有多個視圖時椰弊,在視圖間切換時,并不會再次載入viewDidLoad方法瓤鼻,所以如果在調(diào)入視圖時秉版,需要對數(shù)據(jù)做更新,就只能在這個方法內(nèi)實(shí)現(xiàn)了茬祷。所以這個方法也非常常用清焕。

4) - (void)viewDidAppear:(BOOL)animated;

有時候牲迫,由于一些特殊的原因耐朴,我們不能在viewWillApper方法里,對視圖進(jìn)行更新盹憎。那么可以重寫這個方法筛峭,在這里對正在顯示的視圖進(jìn)行進(jìn)一步的設(shè)置。

5) - (void)viewWillDisappear:(BOOL)animated陪每;

在視圖變換時影晓,當(dāng)前視圖在即將被移除、或者被覆蓋時檩禾,會調(diào)用這個方法進(jìn)行一些善后的處理和設(shè)置挂签。

由于在IOS4之后,系統(tǒng)允許將APP在后臺掛起盼产,所以在按了Home鍵之后饵婆,系統(tǒng)并不會調(diào)用這個方法,因?yàn)榫瓦@個APP本身而言戏售,APP顯示的view侨核,仍是掛起時候的view,所以并不會調(diào)用這個方法灌灾。

6) - (void)viewDidDisappear:(BOOL)animated搓译;

我們可以重寫這個方法,對已經(jīng)消失锋喜,或者被覆蓋些己,或者已經(jīng)隱藏了的視圖做一些其他操作。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市段标,隨后出現(xiàn)的幾起案子涯冠,更是在濱河造成了極大的恐慌,老刑警劉巖怀樟,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件功偿,死亡現(xiàn)場離奇詭異,居然都是意外死亡往堡,警方通過查閱死者的電腦和手機(jī)械荷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來虑灰,“玉大人吨瞎,你說我怎么就攤上這事∧赂溃” “怎么了颤诀?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長对湃。 經(jīng)常有香客問我崖叫,道長,這世上最難降的妖魔是什么拍柒? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任心傀,我火速辦了婚禮,結(jié)果婚禮上拆讯,老公的妹妹穿的比我還像新娘脂男。我一直安慰自己,他們只是感情好种呐,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布宰翅。 她就那樣靜靜地躺著,像睡著了一般爽室。 火紅的嫁衣襯著肌膚如雪汁讼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天阔墩,我揣著相機(jī)與錄音掉缺,去河邊找鬼。 笑死戈擒,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的艰毒。 我是一名探鬼主播筐高,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了柑土?” 一聲冷哼從身側(cè)響起蜀肘,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎稽屏,沒想到半個月后扮宠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡狐榔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年坛增,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片薄腻。...
    茶點(diǎn)故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡收捣,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出庵楷,到底是詐尸還是另有隱情罢艾,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布尽纽,位于F島的核電站咐蚯,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏弄贿。R本人自食惡果不足惜春锋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望挎春。 院中可真熱鬧看疙,春花似錦、人聲如沸直奋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽脚线。三九已至搁胆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間邮绿,已是汗流浹背渠旁。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留船逮,地道東北人顾腊。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像挖胃,于是被迫代替她去往敵國和親杂靶。 傳聞我的和親對象是個殘疾皇子梆惯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容