2009-11-11 38 views
0

我試圖在UITabBarController中添加多個視圖。目前我的對象層次結構如下所示:UITabBarController - > UIViewController * - > UIView *。作爲一個更具體的例子,我的UITabBarController的第一個視圖控制器是一個UIViewController,它有三個子視圖,它們由UISegmentedControl控制。根據選擇哪個段,我將相應的視圖推到前面。UITabBarController中的多個視圖和控制器

我知道我可以使用UINavigationController來管理我的三個視圖;然而,我希望呈現的數據並不是真正的等級。

除了UITabBarController或UINavigationController之外,有哪些容器控制器可以用於這種情況?還是有另一種方法我應該使用(我目前手動管理視圖)。

謝謝!

回答

1

Custom view controllers在視圖控制器編程指南中有介紹。

如果您想更改佈局以使用UINavigationController,則可以刪除分段的控制視圖,並將第一個視圖作爲導航控制器內的表視圖。該表格將具有分段控件所具有的三個選項,並且點擊它們會推動與該選項關聯的視圖。通過這種方式,您創建了分層視圖佈局,而不是使用分段控件,通常用於切換功能而不是控制視圖。

如果您選擇這樣做,thesetwo指南部分將是一個很好的開始。

+0

謝謝本。表格和導航控制器方法的問題在於,從一個視圖切換到另一個視圖需要彈出到表格並推入新的控制器(即2次點擊)。我希望用戶只需點擊一下即可在不同的視圖之間切換。有沒有其他方法可以推薦? – spinlock 2009-11-11 19:38:44

+0

然後你應該繼續使用帶有分段控件的UIViewController。如果三個子視圖足夠小,用戶不應該感到困惑。 – 2009-11-11 20:02:36

+0

您可以使用UINavigationController使用setViewControllers以任何方式設置堆棧:animated: – 2009-11-11 21:47:52

0

對此沒有任何支持框架 - 通常您必須自己管理在交換容器視圖中切換視圖。

我過去採取的一種方法是爲每個交換視圖維護一個ViewController數組,並將viewController.view作爲交換容器視圖的子視圖添加。然後,我編寫了視圖控制器切換代碼,以便在包含的視圖控制器中調用viewWillAppear和viewWillDisappear,因爲它們交換進出,這使事情變得更簡單,因爲您可以完全分開處理它們。

你可以寫出那種類的一般,然後重新使用它。

相關問題