loadView 的解析

loadView 這個(gè)方法決定了 視圖控制器剛加載出來(lái)樣式,也就是loadView中的self.view 是什么樣子,viewDidload出來(lái)就是什么樣子

每一個(gè)控制器都有一個(gè)view屬性,但是在系統(tǒng)調(diào)用loadView 之前,這個(gè)屬性為nil

//這是系統(tǒng)的UIViewController 的屬性
@property(null_resettable, nonatomic,strong) UIView *view;
- (void) loadView{
         [super loadView]  //系統(tǒng)在這個(gè)方法里給控制器的view 初始化(實(shí)例化)出來(lái)
}
- (void) loadView{
        UIView *vv = [[UIView alloc] init]   //與上一句的效果是一樣的
       self.view = vv
}
通過(guò)代碼創(chuàng)建

用代碼創(chuàng)建視圖控制器的時(shí)候系統(tǒng)會(huì)自動(dòng) 實(shí)現(xiàn)[self loadView] ,創(chuàng)建一個(gè)無(wú)色透明的 view放到視圖控制器上

視圖控制器只是控制和管理視圖,是一個(gè)抽象的概念,視圖才是具體的存在

通過(guò)xib和sb 創(chuàng)建

通過(guò)xib 和storyBoard創(chuàng)建的視圖控制器,系統(tǒng)會(huì)是用它們自帶的view加載視圖,但是系統(tǒng)也會(huì)調(diào)用[self loadView]這句代碼 . 也就是通過(guò)xib和storyBoard和代碼創(chuàng)建,視圖控制器的時(shí)候都會(huì)調(diào)用這個(gè)方法

何時(shí)調(diào)用loadView

loadView方法僅在用代碼創(chuàng)建視圖控制器的界面時(shí)使用
在loadView方法中根據(jù)實(shí)際需求來(lái)確定到底是否需要調(diào)用[super loadView] 加載view,也就是用到的時(shí)候才加載,也就是延時(shí)加載,通俗的講是懶加載

Snip20160325_15.png
最后編輯于
?著作權(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)容

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