第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

-awakeFromNib或-viewDidLoad應該使用哪個?

-awakeFromNib或-viewDidLoad應該使用哪個?

慕村9548890 2019-12-20 10:58:07
我最近在我的應用程序中遇到問題,我在UIViewController子類的-awakeFromNib方法中創(chuàng)建的某些子視圖 從視圖中消失了。經(jīng)過一番摸索之后,我發(fā)現(xiàn)移動我輸入的代碼-awakeFromNib可以-viewDidLoad解決問題。似乎-awakeFromNib在從筆尖取消存檔UIViewController時僅調(diào)用一次,并且-viewDidLoad在每次取消存檔視圖時都調(diào)用一次。那么最佳實踐是什么?看來UIViewController -awakeFromNib不應在視圖中添加任何視圖,而應該在中完成-viewDidLoad。我理解正確嗎?還是我比我想的更困惑?
查看完整描述

3 回答

?
Helenr

TA貢獻1780條經(jīng)驗 獲得超4個贊

awakeFromNib控制器本身未從筆尖存檔時調(diào)用。創(chuàng)建/取消存檔視圖viewDidLoad時調(diào)用。當控制器的視圖存儲在單獨的nib文件中時,這一區(qū)別尤其重要。


查看完整回答
反對 回復 2019-12-20
?
慕碼人8056858

TA貢獻1803條經(jīng)驗 獲得超6個贊

同樣重要的是,awakeFromNib從內(nèi)存警告中恢復后將永遠不會調(diào)用該函數(shù)。但是,該viewDidLoad函數(shù)將被調(diào)用。


查看完整回答
反對 回復 2019-12-20
?
至尊寶的傳說

TA貢獻1789條經(jīng)驗 獲得超10個贊

我將通過舉一個例子來回答:

如果定義customCell類和customCell.xib文件,然后使用加載單元格
- (NSArray *)loadNibNamed:(NSString *)name owner:(id)owner options:(NSDictionary *)options,則在未歸檔xib中的對象時將調(diào)用awakeFromNib。

如果定義customViewController,則customViewController使用創(chuàng)建時- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil。當viewDidLoad加載到視圖層次結(jié)構(gòu)中時,它將被調(diào)用。

一些相關(guān)的混淆方法:

  • (void)loadView; 如果子類不使用筆尖,則應在此處創(chuàng)建其自定義視圖層次結(jié)構(gòu)。如果未指定筆尖名稱,則loadView將嘗試加載名稱與視圖控制器類相同的筆尖。如果不存在此類筆尖,則必須在調(diào)用-view之前調(diào)用-setView:,或重寫-loadView方法以編程方式設(shè)置視圖。-loadView絕對不能直接調(diào)用。

  • (void)viewDidLoad:加載視圖后調(diào)用。對于用代碼創(chuàng)建的viewController,它在-loadView之后。對于從筆尖未存檔的視圖控制器,這是在設(shè)置視圖之后。


查看完整回答
反對 回復 2019-12-20
  • 3 回答
  • 0 關(guān)注
  • 648 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號