2009-10-23 51 views
0

假設我有一個需要訪問視圖的ViewController。在ViewController的類文件,我做iPhone:在代碼中訪問ViewController中的視圖對象

IBOutlet ViewA *someview; 

而且在界面生成器,我拖放我的文檔中的UIView和類設置爲ViewA

我很想念通過IB連接時如何實例化「東西」。將.xib文件解壓後,是否自動分配ViewA?如果我不想使用IB,該怎麼辦?

回答

1

如果你不想使用IB,而不是把那IBOutlet中有,你只是消滅它,只留下

ViewA *someview; 

,然後在某處你的代碼,當你需要看,你做a

someView = [[UIView alloc] initWithFrame: rect]; 

我更喜歡IB,其他人更喜歡以編程方式創建視圖。我喜歡我如何定位所有的視圖子視圖,包括UIButtons,UILabels,UITableViews,其他UIViews等,而不必使用座標來這樣做。因人而異。

至於什麼時候事情被實例化,當使用XIB時,你的應用程序可能會延遲加載視圖控制器,一旦它被加載,它將加載你的視圖。什麼實際加載你的視圖,是當你第一次訪問變量some​​View。雖然存在插座連接,但視圖及其子視圖在您以任何方式訪問某個視圖之前都不會加載,例如,如果您只是執行以下操作:

if (someview) { 
    // the view is loaded now 
} 
相關問題