从现有导航层次结构替换ViewController(处理选项卡时)

时间:2016-09-10 18:16:09

标签: ios uiviewcontroller swift2

我可以使用self.navigationController?.setViewControllers通过传递我想要的Viewcontrollers来改变我的ViewControllers导航层次结构,但我不知道如何在我的情况下做同样的事情:

我有3个标签说A,B,C

从A i可以推送到A2视图控制器

从B的B1我也可以推A2视图控制器(通过segue打开A2视图控制器)但是当我在这个A2视图控制器中我想要更改导航层次结构中的视图控制器时,如果我从A2返回它应该拿了标签A我怎么能这样做?

P.S。如果我的问题不够明确,请告诉我,我会解决它。

1 个答案:

答案 0 :(得分:0)

在这种情况下,您应该ViewController A实例化,并使用pop方法viewController popToViewController

例如,

  let viewController = self.storyboard?.instantiateViewControllerWithIdentifier(identifier) as UIViewController
  self.navigationController!.popToViewController(viewController , animated: true)

或者可以管理类似的东西,

   let viewControllers: [UIViewController] = self.navigationController!.viewControllers as [UIViewController]
  self.navigationController!.popToViewController(viewControllers[viewControllers.count - 2], animated: true)   //manage index or array that can reach you a your viewcontroller A

您可以获取标签栏(即视图控制器),例如

  var vcA:FirstViewControllerA = self.tabBarController.viewControllers[0] as FirstViewControllerA!

可以弹出vcA

参考:this so post