2009-07-14 67 views
3

我想創建一個視圖,裏面有一些控件,一個文本框和一些按鈕,我想複製它們以將它們顯示爲tabview中選項卡的內容。 每個選項卡必須具有此視圖的實例。 路線?複製視圖

回答

5

戴夫德隆是關閉和有點你的問題包含答案(「每個選項卡必須有一個視圖的實例」)。創建一個UIViewController子類以編程方式創建視圖或加載NIB。然後實例化你的UIViewController子類的幾個實例,並將它們全部添加到UITabViewController的viewControllers屬性中。

你會想花一些時間與View Controller Programming Guide。您正在製作同一個UIViewController子類的多個實例的事實對解決方案的影響不大。

1

Ehm ...我不確定我是否正確理解你想做什麼。 「重複」一詞聽起來不太好,因爲大多數情況下在編程中它表示一種「氣味」。

我不是可可的專家,既不是Objective-C的專家,但我想你可以以某種方式將你的控件放在某種容器控件中,並在你的標籤視圖上實例化(重用而不是重複)這個容器控件。無論你想要什麼。

+0

正如我所說:「每個標籤必須有一個這個視圖的實例」。無論如何,感謝無用的答案。 – goo 2009-07-14 20:38:18

+0

@他說的是正確的。您可以將視圖構建爲View XIB,然後使用NSViewController多次實例化它(是實現它的一種方法)。 – 2009-07-14 21:08:06

0

複製視圖層次結構的快速和骯髒的方法是編碼並解碼它。例如:

NSData * encodedView = [NSKeyedArchiver archivedDataWithRootObject:myView]; 
NSView * myViewClone = [NSKeyedUnarchiver unarchiveObjectWithData:encodedView]; 
+0

這種方法有許多缺點。例如,如果視圖設置了目標和操作,除非目標也被編碼,否則它們將不會被複制。 – 2009-07-14 21:29:28