2017-04-21 64 views
1

当用户在某个小区(视图)点击一个按钮 我要推到另一选项卡的视图控制器推到另一选项卡的视图控制器

tabbarController
---导航控制器---- VC甲
---导航控制器---- VC乙
---导航控制器---- VCç---- VC d

像从视图控制器A至viewcontr奥勒d

我试图赛格瑞

self.window?.visibleViewController?.performSegue(withIdentifier:"homeSegueDetailStatement", sender: self) 

的工作,但没有导航栏....

我试图创建一个导航控制器和现在,崩溃...

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) 
     } 

请帮我

编辑---

实际上我想更改选项卡和导航到第二个视图控制器。 我呼吁来自collectionCell本功能,这就是为什么我必须GE当前视图 - 控制

编辑--- 我找到了我想要

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) 
       } 
      } 
     } 
    } 
+0

如果你推的ViewController那么为什么你再presentingviewcontroller –

+0

需要推从appdelegate或Viewcontroller? – KKRocks

+0

你能告诉我们你的故事板场景吗? –

回答

0

尝试是这样的:

let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil) 
let nextViewController = storyBoard.instantiateViewController(withIdentifier: "mainView") as! MainViewController 
self.present(nextViewController, animated:true, completion:nil) 
0

像这样尝试

let mainStoryboardIpad : UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 
let MainViewControllerObj : MainViewController = mainStoryboardIpad.instantiateViewController(withIdentifier: "MainViewController") as! MainViewController 
let navigationControllerObj:UINavigationController = UINavigationController.init(rootViewController: MainViewControllerObj) 
self.present(navigationControllerObj, animated:true, completion:nil) 
2

使用代码下面,你从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 
0
Try below code: 

let mainStoryBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil) 
let nextViewController = mainStoryBoard.instantiateViewController(withIdentifier: "DcontrollerIdentifier") as! DViewController 
self.navigationController?.pushViewController(nextViewController, animated: true) 
相关问题