swift - 一起更改标签栏控制器 selectedIndex 后如何推送视图控制器
问题描述
我有六个 tabItem 视图控制器,每个子视图控制器都有自己的导航控制器。更改 selectedIndex 后,我无法推送新的视图控制器。我使用 AZTabBarController 创建了一个 tabbar 变量。
//the viewcontroller I want to push
let vc = self.storyboard?.instantiateViewController(withIdentifier: "CreateArticleViewController") as! CreateArticleViewController
//this can changing my tabbar selected index well.
self.currentTabBar?.setIndex(3, animated: true)
// Below code doesn't work
self.navigationController?.pushViewController(vc, animated: true)
self.currentnavigationController?.pushViewController(vc, animated: true)
选项卡控制器 -> 导航 1 -> A1 -> A2
-> 导航 2 -> B1 -> B2 -> B3 -> B4
-> 导航 3 -> C1 -> C2 -> C3 -> C4
-> 导航 4 -> D1 -> D2 -> D3 -> D4
-> 导航 5 -> E1 -> E2 -> E3
-> 导航 6 -> F1 -> F2 -> F3
例如,当我在 A1 中点击一个按钮时,如何更改索引并将视图控制器推送到 D3?我应该使用自定义委托来做到这一点吗?请参阅我的故事板的快照。 https://imgur.com/a/X860m7p
解决方案
当您更改selectedIndex
导航时,您推送的是 A 而不是新的 D,所以您需要
self.currentTabBar!.setIndex(3, animated: true)
let dNav = self.currentTabBar!.viewControllers[3] as! UINavigationController
dNav.pushViewController(vc, animated: true)
推荐阅读
- php - Yii2 - Return Response during beforeAction
- neural-network - ConvNets 中的每个卷积都会增加维数吗?
- python - numpy,取它们交集的数组差
- java - 将图像上传到 Firebase
- android - 拇指图像略位于拇指左侧
- c# - Xamarin.Forms TimePicker 是否支持行为?
- python-3.x - 导入张量流时出错。DLL 加载失败
- android - 是否可以强制 AlertDialog 的按钮始终垂直显示?
- bash - Bash 脚本更改目录不返回这样的文件或目录
- swift - 如何在 Core Data 托管对象上跟踪“发送到实例的无法识别的选择器”