在使用segues的导航中,我们可以从根控制器推送控制器A或B.
从A我们可以推C,它可以推B,以后可以放松到A重启过程。
从B我们可以推A,它可以推C,以后可以放松到B重启过程。
在B中,我们有一个按钮,上面写着“转到A”,必须根据情况放松或推动控制器A.
如果我能在预先形成push segue之前放松,我怎么能轻易知道?
现在我使用navigationController数组来检查前一个控制器是否为C来推或放。我想知道使用segue的这种循环的通用解决方案,例如:
如果 B可以展开到 然后展开其他推送A
所以,问题是,如何在不访问navigationController数组的情况下检查 B是否可以放松到A ?
答案 0 :(得分:0)
这是我对Swift应用程序的一般解决方案:
unwindToXXX:
个方法unwindToXXX
和showXXX
然后你可以简单地拨打gotoController("unWindToXXX", "showXXX")
给出
func gotoController(unwind: String, show: String) {
let action = Selector(unwind + ":")
if let target = navigationController?.viewControllerForUnwindSegueAction(action, fromViewController: self, withSender: self)
{
assert(target.canPerformUnwindSegueAction(action, fromViewController: self, withSender: self))
performSegueWithIdentifier(unwind, sender: self)
} else {
performSegueWithIdentifier(show, sender: self)
}
}