ios - 如何隐藏 Tabbarcontroller 的第一个视图控制器并直接转到下一个控制器但应在底部显示标签栏项目
问题描述
我有一个视图控制器作为我的初始视图控制器。其中有一个按钮(GO 按钮),当用户点击它时,它应该转到另一个视图控制器(我们称它为目标视图控制器,标签为“这是我想去的地方”)。同时我想通过一个 Tabbar 控制器传递它。原因是我想在我的导航堆栈中有标签栏。我希望在按下 go 按钮的同时直接进入目标视图控制器,但它应该在底部显示标签栏项目。因此,为了在 FirstViewController didLoadMethod 中实现这一点,我检查了一个布尔值并将视图控制器推送到目标视图控制器。我实现了结果,即当按下 Go 按钮时,它转到 Destination 视图控制器并在其底部有标签栏项目。但是问题是,因为它通过 Tabbarcontroller,FirstViewController 会显示几秒钟,然后它会推送到 Destination 视图控制器。我希望在此转换发生时隐藏 FirstViewController。如何做到这一点?图片显示了我想要的。将 firstviewcontroller 放在导航堆栈中时,我该怎么做才能隐藏它?
解决方案
您试图产生的效果在故事板中很难做到。以编程方式,您只需创建 Tabbar 控制器(及其子级)和“这是我想去的地方”控制器,然后要求导航控制器同时显示两者。
例如,点击“Go”后,我将在您的第一个视图控制器中运行以下代码:
let tabBarController = UITabBarController()
let finalDestination = UIViewController()
var viewControllers = self.navigationController?.viewControllers ?? []
viewControllers.append(tabBarController)
viewControllers.append(finalDestination)
self.navigationController?.setViewControllers(viewControllers, animated: true)
推荐阅读
- html - 部署到 Netlify 时找不到所需的文件 index.html
- terraform - ACM 证书女巫计数 = 0 & aws_acm_certificate_validation 由于 for_each 而失败
- c# - Unity/C#:在垂直跳跃之前检查速度?
- xamarin.forms - 如何保存列表视图中复选框的状态?
- python - 如何替换字符串并排除某些变化的整数?
- python - KivyMD - 在对话框中使用时无法更新 TextField 的文本
- react-native - 用插值反应原生动画不起作用
- javascript - 如何在主应用程序功能中使用另一个文件中的功能?
- asp.net-core - 在 Asp.Net Core 中响应
- mongodb - 如何根据集合查询过滤 MongoDB 文档中的数组?