在一个应用程序中快速处理多个 TabBarController

Posted

技术标签:

【中文标题】在一个应用程序中快速处理多个 TabBarController【英文标题】:Swift multiple TabBarControllers in one application 【发布时间】:2022-01-01 07:40:26 【问题描述】:

我是 ios 开发的新手,在制作我的第一个应用程序时,我不知道如何为不同的视图实现不同的 TabBar。我在 NavigationController 内有一个 TableView,在 TabBarController 内。 NavigationViewController 的 TabBar 有“Home”和“Settings”。

当用户单击 TableView 单元格时,会显示 DetailViewController,我真的很想这样做,以便在 DetailViewController 中,会有一个不同的 TabBar 作为“邀请”按钮。就像在 Reddit 应用程序中一样,TabBar 似乎会根据您是否点击帖子而发生变化(请参阅屏幕截图)。

TabBar at HomeTabBar inside post

我尝试为 DetailView 嵌入一个单独的 TabBarController,但它不起作用(也许我没有正确执行)。我可能问错了问题,因为我没有从谷歌得到任何东西。我对 TabBarControllers 尤其不熟悉,所以我非常想了解这个实现是如何完成的。我完全一无所知;任何形式的帮助将不胜感激。谢谢!

【问题讨论】:

【参考方案1】:

在情节提要中创建 2 个 Tabbar 控制器。 为每个标签栏创建一个 UITabBarController 类。 添加导航控制器。 像 viewController 一样从 Tabbar1 推送到 Tabbar 2

@IBAction func btnCheckClick(_ sender: Any) 
    let vc = UIStoryboard.init(name: "Main", bundle: Bundle.main).instantiateViewController(withIdentifier: "TabBar2") as? TabBar2
    self.navigationController?.pushViewController(vc!, animated: true)

【讨论】:

您好,感谢您的回答!但是,这很好用,在我的情况下,我使用了两个导航栏按钮项目,其中一个是“添加”按钮,用于在我的 TableView 中添加一个新单元格。当我使用这种方法时,它使我只能在 TabBar1 中添加 BarButtonItems,即 TabBarController。这意味着我必须在 TabBar1 类中实现向 TableView 添加一个新元素,我不知道如何实现这一点。 您可以创建一个在导航栏上添加按钮的功能...并在第二个 tabBar 上调用它以获取相同的按钮...随着您的 tabBar 发生变化 如果你有很多导航控制器,并且每个控制器都需要 rightBarButton。然后您可以使用 UINavigationItem 将其添加到应用程序委托 另外,我们将不胜感激

以上是关于在一个应用程序中快速处理多个 TabBarController的主要内容,如果未能解决你的问题,请参考以下文章

在一个 catch 块中处理多个 swift 错误

idea java方法中 传多个参数对象 的复制粘贴快速处理方法

Python中多个词典和列表字典的高效快速数据存储和处理,以及列表的两个词典的交集

流式数据处理过程中如何快速识别是不是有阻塞?

Spark快速大数据分析 01

快速了解NIO