2013-07-31 65 views
1

我正在構建類似於iPad上的UISplitView。但「主」面板將有按鈕,而不是一個列表。我想有一個UITabBarController,沒有UITabBar

細節面板最多有7個不同的屏幕(對應於主窗格中的按鈕)。

所以,我想要做的就是在InterfaceBuilder中構建一個UITabBarController(除了很容易查看的其他原因)。但是,然後在「主」視圖中按下每個按鈕都會告訴標籤欄控制器顯示不同的面板。

可以這樣做,還是這種方法只是愚蠢的?我想我可以創建一個容器視圖,並交換視圖控制器進出。但是在IB中使用UITabBarController使得(視覺上)顯而易見的是,這些視圖都是連接的。

感謝您的任何建議。

回答

1

我做了同樣的事情,但我無法以乾淨合法的方式隱藏標籤欄。因此,我決定改變方法:使用故事板中的UITabBar作爲連接的「佔位符」,並填充我的SplitController的viewControllers數組,然後在加載我的SplitController時,從故事板以編程方式加載UITabBarController,複製viewControllers數組的內容,最後關閉UITabBarController。

用這種方法你只需要管理一個VC和另一個之間的過渡,但你將有:

  • 可能性設定與故事板viewControllers(這是最好的部分恕我直言)
  • 可能使用tabBarItem爲圖標爲您的菜單控制器

所以,要更加原理:

  • NSArray* viewControllers實例變量
  • 您可以添加initWithTabBarController:實例方法您SplitController並通過編程方式加載tabBarController實例創建您的SplitController實例。
  • initWithTabBarController方法中,使用tabBarController.viewControllers屬性填充viewControllers數組。現在你可以「清理」你的標籤欄控制器實例,你不需要它
  • 你必須管理從一個控制器到另一個控制器的轉換。爲此,我建議您在容器視圖控制器中使用主視圖。

我認爲這種方法很好,有一個乾淨和可讀的故事板,我正在更新我的所有項目使用它。

Regards Fabio

相關問題