loadView、viewDidLoad與viewWillAppear的區(qū)別

loadView

當(dāng)控制器沒有使用nib視圖頁面,loadView會(huì)被調(diào)用去創(chuàng)建自己的自定義視圖層,絕不能直接調(diào)用。

viewDidLoad

該方法只會(huì)在控制器加載完view時(shí)被調(diào)用,這將會(huì)發(fā)生在當(dāng)控制器因?yàn)槟承┰蛐枰獀iew的時(shí)候。為了顯示view是這些原因中的一個(gè)。viewDidLoad通常不會(huì)被第二次調(diào)用除非這個(gè)view因?yàn)槟承┰驔]有及時(shí)加載出來。

viewWillAppear

該方法會(huì)在view要被顯示出來之前被調(diào)用。這總是會(huì)發(fā)生在ViewDidload被調(diào)用之后并且每次view顯示之前都會(huì)調(diào)用該方法。

Tips:

一個(gè)經(jīng)常容易犯的錯(cuò)誤就是把viewDidLoad方法看做是view的初始化方法,或者是每當(dāng)view需要初始化的時(shí)候就會(huì)調(diào)用viewDidLoad方法。事實(shí)上,ViewDidLoad方法只會(huì)在控制器需要view的時(shí)候才會(huì)去調(diào)用,并且只會(huì)調(diào)用一次。因而,在控制器的view在控制器需要它之前可以一直長(zhǎng)時(shí)間處于初始化狀態(tài),并且它可能在被調(diào)用一次后會(huì)駐留在后臺(tái)。在這些情況下,ViewDidLoad不會(huì)被調(diào)用。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 7、不使用IB是,下面這樣做有什么問題? 6、請(qǐng)說說Layer和View的關(guān)系,以及你是如何使用它們的。 1.首先...
    AlanGe閱讀 995評(píng)論 0 1
  • 27、ViewController的didReceiveMemoryWarning是在什么時(shí)候調(diào)用的?默認(rèn)的操作是...
    煙雨平生花飛舞閱讀 695評(píng)論 0 1
  • 前言: 這部分內(nèi)容,對(duì)于大部分人來說使用起來可能已經(jīng)非常熟練,但是涉及到的細(xì)節(jié)還是挺多的,對(duì)于新開發(fā)者可能不是...
    饒鵬偉閱讀 1,053評(píng)論 1 5
  • 172.簡(jiǎn)述視圖控制器的生命周期。 1)init函數(shù)(init;initWithFrame;initWithCod...
    AlanGe閱讀 470評(píng)論 0 0
  • UI viewcontroller的一些方法的說明viewDidLoad,viewWillDisappear, v...
    b485c88ab697閱讀 3,647評(píng)論 0 22

友情鏈接更多精彩內(nèi)容