iOS 使用 TabBar 改变显示的视图

Posted

技术标签:

【中文标题】iOS 使用 TabBar 改变显示的视图【英文标题】:iOS Use TabBar to change displayed view 【发布时间】:2013-03-05 16:08:30 【问题描述】:

我的主导航有一个主 TabBarController。在 1 个选项卡下,我有一个控制器,顶部有另一个 TabBar。如果可能,我希望能够使用此 TabBar 在同一控制器内的 2 个视图之间切换。

我的想法是在我的故事板上有一个 ScrollView 和一个 TableView,然后在选择适当的选项卡时在 2 个主视图上使用 setHidden:(切换 1 个隐藏和另一个显示)。

但问题是,在故事板中,我永远无法让他们玩得很好。当我尝试定位 1 个视图时,它总是成为它后面的视图的子视图。例如,我的 ScrollView 定位良好,但是当我将 TableView 移动到位时,TableView 成为 ScrollView 的子项 - 因此,如果我隐藏 ScrollView,我将永远无法取消隐藏 TableView。

在情节提要左侧的场景表下,我可以将视图定位为都是主视图的子视图(正确),而 ScrollView 或 TableView 不会成为另一个的子视图(正确)。但是,每当我这样做时,我所做的定位就会丢失,并且所有东西都在错误地浮动。

也许我正在以一种糟糕的方式来处理这种观点的改变,或者有没有办法让故事板发挥得很好?

【问题讨论】:

【参考方案1】:

如果我理解正确,您需要以下内容:

TabBarController A - 您的主要导航,假设它有 3 个选项卡 A1、A2、A3 TabBarController B - 嵌套在主导航的一个选项卡(例如 A3)中,它有 2 个选项卡 B1、B2 B1 - 滚动视图 B2 - 一个表格视图

为此,您无需设置隐藏,只需使用 TabBarController B 以与 TabBarController A 相同的方式呈现视图。

下面的截图显示了故事板布局:

注意 - 为了将 TableViewController 链接到情节提要中的 TabBarController,您可以从 TabBarController 控制并拖动到 TableViewController,然后从弹出菜单中选择“关系转场 - 视图控制器”。

【讨论】:

以上是关于iOS 使用 TabBar 改变显示的视图的主要内容,如果未能解决你的问题,请参考以下文章

IOS:将viewcontroller添加到ios中的自定义TabBar

当我在 iOS 7 中弹出 ViewController 时,需要再次显示 TabBar

在 iOS 中的 navigationController 堆栈中隐藏 tabBar 时,视图在屏幕上显示后向下移动

无法在 View Controller iOS Swift 中显示 TabBar

如何在 iOS 15 中使用 SwiftUI 在特定视图中隐藏 TabBar

iOS开发——代码生成TabBar与视图切换具体解释