ice*_*fox 2 uitabbarcontroller uinavigationcontroller ios swift
当用户单击某个单元格(视图)上的按钮时,我想推送到另一个选项卡的视图控制器
tabbarController
--- 导航控制器 ---- VC A
--- 导航控制器 ---- VC B
--- 导航控制器 ---- VC C ---- VC D
就像从视图控制器 A 到视图控制器 D
我尝试过继续
self.window?.visibleViewController?.performSegue(withIdentifier:"homeSegueDetailStatement", sender: self)
Run Code Online (Sandbox Code Playgroud)
有效,但没有导航栏......
我尝试创建一个导航控制器并呈现,崩溃了......
if let visibleViewCtrl = UIApplication.shared.keyWindow?.visibleViewController {
let nav = UINavigationController(rootViewController: visibleViewCtrl)
let b = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "PendingStatementVC") as! PendingStatementViewController
nav.pushViewController(b, animated:false)
visibleViewCtrl.present(nav, animated:true, completion:nil)
}
Run Code Online (Sandbox Code Playgroud)
请帮我
编辑 - -
实际上我想将选项卡和导航更改为第二个视图控制器。我从 collectionCell 调用这个函数,这就是为什么我必须获取当前视图控制器
编辑---我找到了我想要的
DispatchQueue.global().async {
DispatchQueue.main.async {
self.tabBarController?.selectedIndex = 2
if let controller = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "DetailStatementVC") as? DetailStatementViewController {
if let navigator = self.tabBarController?.viewControllers?[2] as? UINavigationController {
navigator.pushViewController(controller, animated: true)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用下面的代码,您可以从 VC-A 转到 VC-D,然后可以从 VC-D 返回到 VC-C
let dViewController = self.storyboard?.instantiateViewController(withIdentifier: "DViewController") as! DViewController
let thirdTabNavController = self.tabBarController?.viewControllers?[2] as! UINavigationController
thirdTabNavController.pushViewController(dViewController, animated: false)
self.tabBarController?.selectedIndex = 2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2411 次 |
| 最近记录: |