2011-11-09 26 views
0

我想知道我怎麼能調用(訪問),它使用IB 我用這個代碼,但沒有機會,我創建了一個子視圖:我怎樣才能使用Interface Builder創建它的子視圖中訪問programatillcay?

mySubView * mysbv = [mySubView alloc]; 
[mysbv setNeedsDisplay:YES]; 

,但我卻會得到編譯錯誤說未申報mySubView在哪裏創建mySubView類,並將其附加到IB內的窗口。

和方式是很好的做法,使用IB使用的部件或我必須以編程方式創建它們(雖然我有問題,要麼)?

+1

倒標記的人應該真的解釋爲什麼。 –

+1

+1。在這種情況下,我會說它可能是英語。但不是每個人的第一語言都是英語,所以不值得讚賞。 – Sohan

回答

0

使用nib文件功能更加強大;一般而言,創建UI元素的代碼示例來自Apple支持用於iPhoneOS的IB的史前時期。

你的代碼示例真的將無法正常工作 - 你永遠不能只對自己使用alloc。爲您的視圖控制器創建一個IBOutlet屬性,並將其連接到您的視圖;它將從awakeFromNib/viewDidLoad起可用。

+0

我強烈不同意你的第一句話。就我個人而言,我只找到非常簡單的應用程序非常有用的筆尖。在我看來,正確的使用方法取決於你試圖達到的目標。拳頭聲明爲 – ader

+0

-1。 nib文件絕不比手動編程更靈活。適合快速工作,但對於專業工作而言非常有限。 – Cyprian

+0

以編程方式創建代碼很慢並且容易出錯。當然,有些情況可以這樣做,但只有當筆尖選項不可行時才這樣做。 –

3

如果您嘗試聲明視圖然後在Interface Builder中訪問該視圖,請將UIView聲明爲您的類中的IBOutlet。 在IB中添加任何視圖後,請從您的文件所有者控制點擊您想要關聯的視圖。

而且,如果UIView的是你的自定義類(在這種情況下mySubView),確保類的UIView更改爲mySubView。這可以在IB的Identity Inspector中找到。