3 回答

TA貢獻1780條經(jīng)驗 獲得超4個贊
awakeFromNib
當控制器本身未從筆尖存檔時調(diào)用。創(chuàng)建/取消存檔視圖viewDidLoad
時調(diào)用。當控制器的視圖存儲在單獨的nib文件中時,這一區(qū)別尤其重要。

TA貢獻1803條經(jīng)驗 獲得超6個贊
同樣重要的是,awakeFromNib
從內(nèi)存警告中恢復后將永遠不會調(diào)用該函數(shù)。但是,該viewDidLoad
函數(shù)將被調(diào)用。

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è)置視圖之后。
- 3 回答
- 0 關(guān)注
- 648 瀏覽
添加回答
舉報