我有一個主視圖與關聯的控制器。我有一些相當複雜的工具欄,需要根據用戶交互進行切換。分解iPhone用戶界面 - 在一個xib中有多個視圖?
爲了簡單起見,我管理的工具欄和我的主視圖控制器,而不是各種錯綜複雜的依賴或非常深的委託鏈。
反正,我怎麼能有一個XIB多個視圖,並正確初始化呢?就像如果我想在屏幕中央顯示我的自定義視圖之一一樣,我該怎麼做?
或者,如果我的意見分成多個xibs,如何可以有他們引用相同的控制器對象爲其IBOutlets/IBActions?
我有一個主視圖與關聯的控制器。我有一些相當複雜的工具欄,需要根據用戶交互進行切換。分解iPhone用戶界面 - 在一個xib中有多個視圖?
爲了簡單起見,我管理的工具欄和我的主視圖控制器,而不是各種錯綜複雜的依賴或非常深的委託鏈。
反正,我怎麼能有一個XIB多個視圖,並正確初始化呢?就像如果我想在屏幕中央顯示我的自定義視圖之一一樣,我該怎麼做?
或者,如果我的意見分成多個xibs,如何可以有他們引用相同的控制器對象爲其IBOutlets/IBActions?
反正,我怎麼能有多個視圖在一個XIB 並進行初始化 正常嗎?如果我想在屏幕的中心 中顯示 我的一個自定義視圖,我該怎麼做?
您可以根據需要在xib中擁有儘可能多的UIView
。通常情況下,您將創建一個「主」視圖 - 即與文件所有者的視圖屬性(即您的視圖控制器)相連接的視圖 - 其餘部分可以位於同一級別的xib中。您也可以將它們連接到視圖控制器中的其他屬性。
你可以把這些意見子視圖主視圖。 (很少,這是很多觀點)。假設您有兩個觀點,FooView
和BarView
。你想在啓動時出現FooView
。因此,您只需將BarView
設置爲隱藏在IB中即可。然後您的視圖控制器可能是這個樣子:
@interface MyViewController : UIViewController
{
FooView* fooView;
BarView* barView;
...
}
...
@property (nonatomic, retain) IBOutlet FooView* fooView;
@property (nonatomic, retain) IBOutlet BarView* barView;
...
然後,你的代碼中,當你想更改視圖,只需使用setHidden:
方法來隱藏一個和顯示等。
替代地,如果我分成多個xibs觀點 ,我怎樣纔能有 它們引用相同的控制器 對象爲其IBOutlets/IBActions?
您可以讓其他xib共享相同的視圖控制器。我自己做了很多。只需將文件所有者設置爲適當的類。
這種方法需要注意的一點是,全部視圖在需要任何視圖時被初始化。
如果你的觀點很簡單,這可能沒有關係,但如果你有複雜的看法,這可能使您的應用程序加載緩慢。
如果意見是有些複雜,你應該將它們分割成不同的.xib
文件。在這種情況下,父母UIViewController
會將IBOutlets分配給其他UIViewController
子類,而不是IBOutlet分配給UIViews
。視圖控制器將自動處理它們各自視圖的延遲加載。
Duplicate:http://stackoverflow.com/questions/1726250/nsviewcontroller-and-multiple-subviews-from-a-nib – 2009-12-15 19:39:07