控制器的生命周期

控制器的生命周期

1.loadView

1.1 如果重寫了控制器的loadView方法,則控制器的View按照loadView方法的描述去創(chuàng)建

  - (void)loadView
  {
      self.view = [[UIView alloc ]init];
      self.view.backgroundColor = [UIColor redColor];
  }

1.2 如果沒重寫控制器的loadView方法,則看有沒有storyboard的,有的話,則按storyboard的描述創(chuàng)建view

加載storyboard的方法:
  • 1>在project--targets--MainInterface指定storyboard

  • 2>代碼加載

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window.backgroundColor = [UIColor whiteColor];
    UIStoryboard *myStoryboard = [UIStoryboard storyboardWithName:@"myStoryboard" bundle:nil];
    self.window.rootViewController = [myStoryboard instantiateInitialViewController];
    [self.window makeKeyAndVisible];
     return YES;
}

1.3 如果沒有storyboard,則看初始化控制器的時候,有沒有指定nibName,指定了的話,就按nibName對應(yīng)的xib創(chuàng)建view

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
       self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        self.window.backgroundColor = [UIColor whiteColor];
      self.window.rootViewController = [[QKViewController alloc]initWithNibName:@"myViewController" bundle:nil];
      [self.window makeKeyAndVisible];
      return YES;
}

1.4 如果沒有指定nibName,假設(shè)控制器名字是QKViewController,則程序優(yōu)先尋找名字為QKView.xib,找到了的話,則按QKView.xib創(chuàng)建view

1.5 如果沒有找到QKView.xib,則尋找QKViewController.xib,找到了的話,則按QKViewController.xib創(chuàng)建view

前面5步的流程圖:

技術(shù)分享

2.前面5步實際都是在做loadView,做完這一步之后,就調(diào)用viewDidLoad,只會被調(diào)用一次

3.在視圖顯示之前調(diào)用viewWillAppear,該函數(shù)可以被多次調(diào)用

4.視圖顯示完畢,調(diào)用viewDidAppear

5.在視圖消失之前,調(diào)用viewWillDisApperar,該函數(shù)可以被多次調(diào)用

6.在布局變化前后,調(diào)用viewWillLayoutSubviews\viewDidLayoutSubviews

7.控制器還有三個方法需要注意:viewWillUnload\viewDidUnload\didReceiveMemoryWarning

  • 當(dāng)程序內(nèi)存不夠用時,最先拿到內(nèi)存警告的是UIApplication→Window→Window.rootViewController→.....(一層一層往下傳)
      控制器收到內(nèi)存警告時,如果要確定要銷毀View,則會調(diào)用viewWillUnload\viewDidUnload.
      控制器是這樣判斷View是否需要銷毀的:

8.當(dāng)控制器的View被銷毀之后,如果又需要顯示,則控制器會調(diào)用loadView,又從第一步的loadView開始走一遍

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末辩棒,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子愚隧,更是在濱河造成了極大的恐慌躯护,老刑警劉巖棍厌,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件羹蚣,死亡現(xiàn)場離奇詭異,居然都是意外死亡誊役,警方通過查閱死者的電腦和手機笼踩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進店門逗爹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嚎于,你說我怎么就攤上這事掘而⌒冢” “怎么了?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵镣屹,是天一觀的道長圃郊。 經(jīng)常有香客問我,道長女蜈,這世上最難降的妖魔是什么持舆? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮伪窖,結(jié)果婚禮上逸寓,老公的妹妹穿的比我還像新娘。我一直安慰自己覆山,他們只是感情好竹伸,可當(dāng)我...
    茶點故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著簇宽,像睡著了一般勋篓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上魏割,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天譬嚣,我揣著相機與錄音,去河邊找鬼钞它。 笑死拜银,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的遭垛。 我是一名探鬼主播尼桶,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼锯仪!你這毒婦竟也來了泵督?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤庶喜,失蹤者是張志新(化名)和其女友劉穎幌蚊,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體溃卡,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年蜒简,在試婚紗的時候發(fā)現(xiàn)自己被綠了瘸羡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡搓茬,死狀恐怖犹赖,靈堂內(nèi)的尸體忽然破棺而出队他,到底是詐尸還是另有隱情,我是刑警寧澤峻村,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布麸折,位于F島的核電站忙菠,受9級特大地震影響悯衬,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜艘刚,卻給世界環(huán)境...
    茶點故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一张肾、第九天 我趴在偏房一處隱蔽的房頂上張望芭析。 院中可真熱鬧,春花似錦吞瞪、人聲如沸馁启。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽惯疙。三九已至,卻和暖如春妖啥,著一層夾襖步出監(jiān)牢的瞬間霉颠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工迹栓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留掉分,地道東北人。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓克伊,卻偏偏與公主長得像酥郭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子愿吹,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,585評論 2 359

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