标签栏控制器显示最后推送的控制器 - 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中显示多个视图控制器?