在UITabBar中使用TableView和Segmented Control的UINavigationBar

时间:2010-08-28 10:41:54

标签: iphone uitableview uinavigationcontroller uitabbarcontroller uitoolbar

我有一个tabbar应用程序。第二个选项卡有一个带有导航控制器的下钻表列表。我还想在工具栏中实现分段控件,根据分段控件中选定的开关显示不同的表条目。我对如何实现这一点感到有点困惑?

屏幕截图 - alt text

这是第二个选项卡控制器中的视图,是通用UIViewController的一个实例。蓝色背景是一个包含分段控件(1,2,3,4)的UIView。顶部的钢蓝色导航栏是Interface Builder的模拟UI元素。我需要放置一个导航控制器,使其具有一个列表视图,该视图根据在分段控制UI中选择的开关而改变。

我有以下选项

  1. 直接添加UINavController作为第二个选项卡的根控制器,其中包含表视图。在这种情况下,我如何容纳具有分段控制的UIToolbar?

  2. 我将UISegmentedControl添加为Second Tab视图控制器的视图的一部分,并将基于导航的表视图添加为该视图的另一个元素。这可行吗?如何将基于导航的控制器添加到UIView并控制框架,使其不覆盖UIToolBar。

  3. 我希望我有意义。如果您有任何建议,请告诉我们。感谢。

3 个答案:

答案 0 :(得分:2)

这就是我实现它的方式。在IB中,在我有一个tabbarController的MainWindow.xib中,我将第二个选项卡的类标识设置为UINavigationConrtroller。然后我创建了第二个选项卡的主视图Controller,它具有分段控件,Table View作为一个rootViewController到NavigationController。这完全按照我的意愿运作。谢谢大家的帮助。

答案 1 :(得分:0)

你可以在UITabbarcontroller中添加UINavigationController代替UIViewController,并将你的UIViewController放在UInavigationController中,并在UITabbarController中添加UITebarController

阅读其看起来令人困惑,但试图实施其工作

第1步:xcode - >新项目 - >标签栏应用

步骤2:打开主窗口的xib选择tabbarcontroller并打开检查器。因为你能够看到视图控制器列表将其类更改为uinavigationController。 如果您需要在第二个选项卡中使用uinavigationController,则只将secong选项卡类更改为uinavigationController

第3步:创建新的uiviewcontroller。打开它的xib并添加uitableview和segment control。

Setp 4:现在展开tabbarcontroller并检查你的第二个标签有navigationcontroller现在在你的navigationcontroller的viewcontroller中添加你的uiviewcontroller

答案 2 :(得分:0)

根据您的要求,您无法避免使用代码 - 我的意思是您无法通过IB中的连接设置所有内容。

我会创建一个UIViewController(我们称之为容器),它将包含分段控件和导航控制器。

  • 您应该将第二个标签设置为视图控制器并将其指向容器。
  • 容器的视图(如果需要,可以使用XIB)应包含将与底部对齐的分段控制器以及将填充视图其余部分并将具有其IBOutlet的containerView。
  • 容器还应具有将在viewDidLoad
  • 中启动的导航控制器成员
  • 您所谈论的表视图也应该在自己的XIB中构建,并拥有自己的视图控制器,将其设置为导航控制器的根视图控制器......

告诉我它是否太混乱/复杂......