我可以使用self.navigationController?.setViewControllers
通过传递我想要的Viewcontrollers来改变我的ViewControllers导航层次结构,但我不知道如何在我的情况下做同样的事情:
我有3个标签说A,B,C
从A i可以推送到A2视图控制器
从B的B1我也可以推A2视图控制器(通过segue打开A2视图控制器)但是当我在这个A2视图控制器中我想要更改导航层次结构中的视图控制器时,如果我从A2返回它应该拿了标签A我怎么能这样做?
P.S。如果我的问题不够明确,请告诉我,我会解决它。
答案 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