标签栏控制器显示最后推送的控制器 - swift 4

Posted

技术标签:

【中文标题】标签栏控制器显示最后推送的控制器 - swift 4【英文标题】:Tabbar controller showing last pushed controller - swift 4 【发布时间】:2018-10-14 12:47:31 【问题描述】:

我有带有 3 个选项卡的选项卡栏控制器(所有视图控制器都嵌入在导航控制器中),同时单击第三个选项卡显示带有开始按钮的视图控制器,单击开始它转到下一个控制器,从这个控制器通过编程我推到另一个vc。现在我的问题是,当我单击第三个选项卡时,它显示了最后一个推送的控制器,而不是显示带有开始按钮的视图控制器。

如果我双击显示当前视图控制器的第三个选项卡。

非常感谢您的帮助。

【问题讨论】:

***.com/questions/7650700/… 【参考方案1】:

它应该是这样工作的,如果你想显示标签 3 的根 vc,你需要在 navigationController 上调用 popToRootViewController()。

aVC.navigationController.popToRootViewController()

当点击相关的选项卡按钮时,您需要调用上述方法,因此您可以使用 UITabBarControllerDelegate 来了解何时发生这种情况。

【讨论】:

关于导航控制器是什么意思? 我在委托方法中调用它 override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) if tabBar.items?.index(of: item) == 5 let jjForm = self .storyboard?.instantiateViewController(withIdentifier: "JJController") jjForm?.navigationController?.popToRootViewController(animated: true) UITabBarControllerDelegate 不是 UITabBarDelegate。检查选定的 VC 是否是 tbc.viewControllers 中的第三个 VC,如果是,您可以调用 popToRoot...() 另外,您要在代码中创建 VC 的新实例,您需要访问 TabBarController 持有的现有 VC

以上是关于标签栏控制器显示最后推送的控制器 - swift 4的主要内容,如果未能解决你的问题,请参考以下文章

在标签栏控制器的推送视图控制器中显示工具栏

如何在1项标签栏控制器中制作顶部标签栏以在swift中显示多个视图控制器?

在 Swift 中的标签栏上方显示 iAd 横幅

Swift 中的标签栏项目

在标签栏应用程序上从 UITableView 推送新的视图控制器

隐藏标签栏控制器