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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何使用Interface Builder創(chuàng)建的nib文件加載UIView

如何使用Interface Builder創(chuàng)建的nib文件加載UIView

iOS
暮色呼如 2019-07-31 14:27:08
如何使用Interface Builder創(chuàng)建的nib文件加載UIView我正在嘗試做一些精心設(shè)計(jì)的事情,但這應(yīng)該是可行的。所以這里對(duì)你所有的專(zhuān)家都是一個(gè)挑戰(zhàn)(這個(gè)論壇是你們很多人的一部分:))。我正在創(chuàng)建一個(gè)問(wèn)卷“組件”,我想在NavigationContoller(我的QuestionManagerViewController)上加載?!敖M件”是“空” UIViewController,可以根據(jù)需要回答的問(wèn)題加載不同的視圖。我這樣做的方式是:創(chuàng)建Question1View對(duì)象作為UIView子類(lèi),定義一些IBOutlets。創(chuàng)建(使用Interface Builder)Question1View.xib (這里可能是我的問(wèn)題所在)。我同時(shí)設(shè)置UIViewController和UIView為類(lèi)Question1View的。我將出口與視圖的組件鏈接(使用IB)。我重寫(xiě)initWithNib我QuestionManagerViewController的看起來(lái)像這樣:- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {     if (self = [super initWithNibName:@"Question1View" bundle:nibBundleOrNil]) {         // Custom initialization     }     return self;}當(dāng)我運(yùn)行代碼時(shí),我收到此錯(cuò)誤:2009-05-14 15:05:37.152 iMobiDines [17148:20b] ***因未捕獲的異常終止應(yīng)用程序' NSInternalInconsistencyException',原因:' -[UIViewController _loadViewFromNibNamed:bundle:]加載了'Question1View“筆尖,但未設(shè)置視圖插座?!蔽掖_信有一種方法可以使用nib文件加載視圖,而無(wú)需創(chuàng)建viewController類(lèi)。
查看完整描述

3 回答

?
藍(lán)山帝景

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊

還有一種更簡(jiǎn)單的方法來(lái)訪問(wèn)視圖,而不是將nib作為數(shù)組處理。

1)創(chuàng)建一個(gè)自定義View子類(lèi),其中包含您希望以后可以訪問(wèn)的任何出口。 - 我的看法

2)在你想要加載和處理nib的UIViewController中,創(chuàng)建一個(gè)IBOutlet屬性來(lái)保存加載的nib的視圖,例如

在MyViewController中(一個(gè)UIViewController子類(lèi))

  @property (nonatomic, retain) IBOutlet UIView *myViewFromNib;

(別忘了合成它并在你的.m文件中發(fā)布它)

3)在IB中打開(kāi)你的筆尖(我們稱之為'myViewNib.xib'),將你文件的所有者設(shè)置為MyViewController

4)現(xiàn)在將文件的所有者插座myViewFromNib連接到筆尖中的主視圖。

5)現(xiàn)在在MyViewController中,寫(xiě)下以下行:

[[NSBundle mainBundle] loadNibNamed:@"myViewNib" owner:self options:nil];

現(xiàn)在,只要您這樣做,調(diào)用您的屬性“self.myViewFromNib”將允許您從筆尖訪問(wèn)視圖!


查看完整回答
反對(duì) 回復(fù) 2019-07-31
?
茅侃侃

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超22個(gè)贊

謝謝你們。我確實(shí)找到了一種方法來(lái)做我想做的事。

  1. UIViewIBOutlet你需要的東西創(chuàng)造你的。

  2. 在IB中創(chuàng)建xib,根據(jù)自己的喜好設(shè)計(jì)它并將其鏈接如下:文件的所有者屬于類(lèi)UIViewController(沒(méi)有自定義子類(lèi),但是“真正的”子類(lèi))。文件所有者的視圖連接到主視圖,其類(lèi)聲明為步驟1)中的類(lèi)。

  3. 將控件與IBOutlets 連接。

  4. DynamicViewController可以運(yùn)行它的邏輯來(lái)決定哪些視圖/廈門(mén)國(guó)際銀行加載。一旦它做出了決定,在loadView方法中放了這樣的東西:

    NSArray* nibViews = [[NSBundle mainBundle] loadNibNamed:@"QPickOneView"
                                                      owner:self
                                                    options:nil];QPickOneView* myView = [ nibViews objectAtIndex: 1];myView.question = question;

而已!

主bundle的loadNibNamed方法將負(fù)責(zé)初始化視圖和創(chuàng)建連接。

現(xiàn)在,ViewController可以根據(jù)內(nèi)存中的數(shù)據(jù)顯示一個(gè)或另一個(gè)視圖,而“父”屏幕不需要打擾這個(gè)邏輯。


查看完整回答
反對(duì) 回復(fù) 2019-07-31
  • 3 回答
  • 0 關(guān)注
  • 454 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

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