带有 TableView 的 UINavigationBar 和 UITabBar 内的分段控件
Posted
技术标签:
【中文标题】带有 TableView 的 UINavigationBar 和 UITabBar 内的分段控件【英文标题】:UINavigationBar with TableView and Segmented Control inside UITabBar 【发布时间】:2010-08-28 10:41:54 【问题描述】:我有一个标签栏应用程序。第二个选项卡有一个带有导航控制器的钻取表列表。我还想在工具栏中实现一个分段控件,该控件根据分段控件中的选定开关显示不同的表条目。我对如何实现这一点有点困惑?
截图 -
这是第二个标签控制器中的视图,是通用 UIViewController 的一个实例。蓝色背景是一个包含分段控件 (1,2,3,4) 的 UIView。顶部的钢蓝色导航栏是来自 Interface Builder 的模拟 UI 元素。我需要放置一个导航控制器,使其具有一个列表视图,该视图根据分段控制 UI 中选择的开关而改变。
我有以下选择
直接将 UINavController 添加为第二个选项卡的根控制器,其中包含表格视图。在那种情况下,我如何适应具有分段控制的 UIToolbar?
我将 UISegmentedControl 添加为 Second Tab 的视图控制器视图的一部分,并将基于导航的表视图添加为该视图的另一个元素。这是可行的吗?如何将基于导航的控制器添加到 UIView 并控制框架,使其不覆盖 UIToolBar。
我希望我说得通。如果您有任何建议,请让我知道。谢谢。
【问题讨论】:
【参考方案1】:这就是我实现它的方式。在 IB 中,在我有一个 tabbarController 的 MainWindow.xib 中,我将第二个选项卡的类标识设置为 UINavigationConrtroller。然后,我为第二个选项卡制作了主视图控制器,该选项卡具有分段控件,表视图作为导航控制器的 rootViewController。这完全符合我的要求。谢谢大家的帮助。
【讨论】:
【参考方案2】:您可以在 UITabbarcontroller 中添加 UINavigationController 代替 UIViewController 并将具有 UISegmentControl 的 UIViewController 放入添加到 UITabbarcontroller 中的 UInavigationController
阅读它的外观令人困惑,但尝试实现它的工作
第一步:xcode-->新建项目-->tabbar应用
第2步:打开主窗口的xib选择tabbarcontroller并打开inspector。因为您可以看到视图控制器列表将它们的类更改为 uinavigationController。 如果您在第二个选项卡中需要 uinavigationController,则只需将 secong 选项卡类更改为 uinavigationController
第 3 步:创建新的 uiviewcontroller。打开它的 xib 并向其中添加 uitableview 和段控制。
Setp 4:现在展开 tabbarcontroller 并检查您的第二个标签是否有 navigationcontroller 现在将您的 uiviewcontroller 添加到 navigationcontroller 的 viewcontroller 中
【讨论】:
所以总结一下你的意思。使第二个选项卡控制器成为 UINavigationController。然后在一个单独的 RootViewController 中添加 UITableView 和 UISegmentedControl,然后用这个 RootController 初始化 UINavigationController。那是对的吗?如果是,那么当我将 VC 推入堆栈时,UISegmentedControl 也会向右移动? 有没有一种方法可以通过 IB 连接等来实现所有这些?如果您能提供有关连接的详细信息,尤其是 UITableView 的视图和委托/数据源,我将不胜感激【参考方案3】:根据您的要求,您无法避免使用代码 - 我的意思是您不能通过 IB 中的连接来设置所有内容。
我将创建一个包含分段控件和导航控制器的 UIViewController(我们称之为容器)。
您应该将第二个选项卡设置为视图控制器并将其指向容器。 Container 的视图(如果需要,可以是 XIB)应包含将与底部对齐的分段控制器和将填充视图其余部分并具有其 IBOutlet 的 containerView。 容器还应该有一个导航控制器成员,该成员将在viewDidLoad
中启动。
你所说的表格视图也应该构建在自己的 XIB 中,并有自己的视图控制器,该控制器将被设置为导航控制器的根视图控制器...
如果它太令人困惑/复杂,请告诉我......
【讨论】:
以上是关于带有 TableView 的 UINavigationBar 和 UITabBar 内的分段控件的主要内容,如果未能解决你的问题,请参考以下文章
带有数组信息的 UIViewController 上的 TableView [关闭]
UISearchController 位置错误,因为带有 tableview 插图