2010-09-07 73 views
0

我想創建一個兩個視圖,單個控制器應用程序,如下所示:我有兩個XIB。每個都有相同的文件所有者。多個XIB相同文件的所有者

作爲一項測試,我在每個XIB上放置了一個UILabel。我已將文件所有者連接到每個XIB中的UILabel。 outlet的屬性是一樣的。

當我實例使用loadNibNamed我還設置了「主人」,以文件擁有者的情況下筆尖,例如:現在

nib=[[NSBundle mainBundle] loadNibNamed:@"ONE" owner:OWNER options:nil]; 
nib=[[NSBundle mainBundle] loadNibNamed:@"TWO" owner:OWNER options:nil]; 

,所有者,如果我叫

[myLabel setText:@"Hello World"]; 

我僅在nib TWO中查看標籤更新。

如果我創建每個NIB都獨有的其他UILabel,那麼我可以正確地更新和查看它們。似乎我只能從File's Owner的屬性到每個NIB有一個連接。

任何想法?

回答

0

你想要的是一個IBOutletCollection。這允許您將一個屬性分配給多個nib元素,並且一次討論整個組。

+0

看起來不錯,但它只有4.0。我對Interface Builder的MVC性質感到非常驚訝,因爲這並不容易以其他方式實現。但是,感謝您的反饋! – Cliff 2010-09-22 14:33:54

0

一個IBOutlet只能指向一個對象。您需要使用每個IBOutlet中的兩個。

0

這是非常古老的,並沒有太多的看法,但我不禁要注意爲什麼這是行不通的。你正在傳遞所有者的同一個實例。創建文件所有者的兩個實例,並且可以有兩個不同的標籤值。實際上,您無法將整個項目中的所有網點分配給一個對象類,儘管您可能不想這樣做。另一個要考慮的問題是,你是否不應該在這裏使用繼承,通過創建一個超類,將所有常見的銷售點連接到該類,然後連接具有獨特銷售點的子類。事實上,既然你將不得不通過用nib標識符或者與它們相關的類來調用它們來區分你的nib,我認爲最好的做法是將單獨的類關聯起來,並使用繼承來覆蓋它們之間的重疊。

相關問題