导航控制器之间的搜索似乎没有推动堆栈,但后退按钮工作

时间:2015-09-08 10:37:55

标签: ios swift

我在两个导航控制器之间有一个segue(A - > B)。使用按钮,我可以无缝地在这些控制器之间导航。问题是在控制器B中,我想访问控制器A,它在堆栈中较低。我正在尝试这个:

self.navigationController!.viewControllers[0] as! A

这给了我一个错误,因为它说我无法将B投射到A。检查self.navigationController!.viewControllers的大小表明它已计数1A在哪里上堆?

segue类型是“Show(例如Push)”

1 个答案:

答案 0 :(得分:2)

我猜你在两个导航控制器之间没有真正的区别。如果您的应用是标准的主要详细信息应用,那么您实际上在A.rootViewControllerB(其中AB是导航控制器)之间有一个segue,并且您所指的代码位于B.rootViewController(例如“DetailViewController”),而不是B

因此,selfB.rootViewControllerself.navigationControllerB,因此self.navigationController!.viewControllers[0]B.rootViewController,而不是A.rootViewController如你所料。

试试这个:

    let A = self.navigationController!.parentViewController! as! UINavigationController
    NSLog("%@", A.viewControllers[0])