13.initWithNibName/initWithCoder/awakeFromNib/loadNibNamed聯(lián)系區(qū)別

各方法介紹

1.initWithNibName
這個方法是在controller的類在IB中創(chuàng)建,通過Xcode實例化controller的時候用的。
2.loadNibNamed
與initWithNibName類似,也是在NSOjbect類在 IB 中創(chuàng)建,通過Xcode實例化controller和 View 的時候用的利虫。
3.initWithCoder
一個類在IB中創(chuàng)建但在xocde中被實例化時被調(diào)用的.比如,通過IB創(chuàng)建一個controller的nib文件,然后在xcode中通過 initWithNibName來實例化這個controller,那么這個controller的initWithCoder會被調(diào)用.或者是一個view的nib文件洒疚,類似方法創(chuàng)建時調(diào)用initWithCoder。
4.awakeFromNib
當(dāng)nib文件被加載的時候,會發(fā)送一個awakeFromNib的消息到.nib文件中的每個對象,每個對象都可以定義自己的awakeFromNib函數(shù)來響應(yīng)這個消息,執(zhí)行一些必要的操作红选。也就是說通過nib文件創(chuàng)建view對象時執(zhí)行awakeFromNib。

關(guān)于 initWithNibName 和 loadNibNamed 的區(qū)別和聯(lián)系

關(guān)于 initWithNibName 和 loadNibNamed 的區(qū)別和聯(lián)系姆另。之所以要把這兩者來一起講喇肋,我覺的我也有點困惑,到底用那種迹辐?其實真正搞清楚了他們之間的差別蝶防,就不會這么迷惘了。因為這兩個方法明吩,根本就不是一路貨色间学。

既然,是要說明這2個方法,那就著重將區(qū)別吧低葫。
但是第一步详羡,還是要羅嗦一下,他們的聯(lián)系:可以使用此方法加載用戶界面(xib文件)到我們的代碼中嘿悬,這樣实柠,可以通過操作這個加載進(jìn)來的(xib)對象,來操作xib文件內(nèi)容善涨。

下面進(jìn)入主題窒盐,談區(qū)別:

  1. ShowViewController的initWithNibName方法
ShowViewController * showMessage = [[ShowViewController alloc] initWithNibName:@"ShowViewController" bundle:nil];
self.showViewController = showMessage;
[showMessage release];

2.VideoCellController的loadNibNamed方法

NSArray * nib = [[NSBundle mainBundle] loadNibNamed:@“Save3ViewController" owner:self options:nil] ;
self.showViewController = [nib lastObject];
[nib objectAtIndex:0];

3.loadNibNamed方法在更多時候用來加載 View

cell = [[[NSBundle mainBundle]loadNibNamed:@"DCFoodCell" owner:nil options:nil] firstObject];

3.總結(jié):
(1) 只看他們初始化,那可能感覺是一樣的钢拧。但是如果蟹漓,打開分別看xib的關(guān)系的時候,才恍然大悟,原來它們繼承的類不同源内。
initWithNibName要加載的xib的類為我們定義的視圖控制器類, loadNibNamed要加載的xib的類為NSOjbect牧牢。
(2) 加載方式不同
initWithNibName方法:是延遲加載,這個View上的控件是 nil 的姿锭,只有到 需要顯示時,才會不是 nil,
loadNibNamed方法:即時加載伯铣,用該方法加載的xib對象中的各個元素都已經(jīng)存在呻此。
(認(rèn)真理解這句幫規(guī):when using loadNibNamed:owner:options:, the File’s Owner should be NSObject, the main view should be your class type, and all outlets should be hooked up to the view, not the File’s Owner.)

initWithCoder和initWithFrame的區(qū)別

initWithoder 是當(dāng)從nib文件中加載對象的時候會調(diào)用,比如你的view來自nib那么就會調(diào)用這個view的這個函數(shù)腔寡。(由框架調(diào)用) initWithFrame (是由用戶調(diào)用焚鲜,來初始化對象的) ,具體如下:

當(dāng)我們所寫的程序里沒用用Nib文件(XIB)時,用代碼控制視圖內(nèi)容,需要調(diào)用initWithFrame去初始化

- (id)initWithFrame:(CGRect)frame
{
    if (self =[superinitWithFrame:frame]) {
        // 初始化代碼
    }
    return self;
}

用于視圖加載nib文件放前,從nib中加載對象實例時忿磅,使用 initWithCoder初始化這些實例對象

- (id)initWithCoder:(NSCoder*)coder
{
    if (self =[superinitWithcoder:coder]) {
        // 初始化代碼
    }
    return self;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市凭语,隨后出現(xiàn)的幾起案子葱她,更是在濱河造成了極大的恐慌,老刑警劉巖似扔,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吨些,死亡現(xiàn)場離奇詭異,居然都是意外死亡炒辉,警方通過查閱死者的電腦和手機(jī)豪墅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來黔寇,“玉大人偶器,你說我怎么就攤上這事。” “怎么了屏轰?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵颊郎,是天一觀的道長。 經(jīng)常有香客問我亭枷,道長袭艺,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任叨粘,我火速辦了婚禮猾编,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘升敲。我一直安慰自己答倡,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布驴党。 她就那樣靜靜地躺著瘪撇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪港庄。 梳的紋絲不亂的頭發(fā)上倔既,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天,我揣著相機(jī)與錄音鹏氧,去河邊找鬼渤涌。 笑死,一個胖子當(dāng)著我的面吹牛把还,可吹牛的內(nèi)容都是我干的实蓬。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼吊履,長吁一口氣:“原來是場噩夢啊……” “哼安皱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起艇炎,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤酌伊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后缀踪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體腺晾,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年辜贵,在試婚紗的時候發(fā)現(xiàn)自己被綠了悯蝉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡托慨,死狀恐怖鼻由,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤蕉世,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布蔼紧,位于F島的核電站,受9級特大地震影響狠轻,放射性物質(zhì)發(fā)生泄漏奸例。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一向楼、第九天 我趴在偏房一處隱蔽的房頂上張望查吊。 院中可真熱鬧,春花似錦湖蜕、人聲如沸逻卖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽评也。三九已至纪铺,卻和暖如春仗哨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背惭蹂。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工熙含, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留诈乒,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓婆芦,卻偏偏與公主長得像,于是被迫代替她去往敵國和親喂饥。 傳聞我的和親對象是個殘疾皇子消约,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,941評論 2 355

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