0

我有以下场景storyboard

VC1 => NavC => VC2 => VC3 => VC4 我segue根据条件以编程方式从 VC1 到 VC2 或 VC3(我通过实例化 NavC 并更改 viewControllers 数组来做到这一点)。现在我想从 VC4 放松到 VC1,但我认为我做错了什么,因为它被忽略了,什么也没有发生。为此,我IBAction在 VC1 中定义了一个名为 unwind1,然后我创建了一个segue从 VC4 到其出口的出口并将其命名为 segue1。我也有子类UINavigationController,并有以下方法:

override func viewControllerForUnwindSegueAction(action: Selector, fromViewController: UIViewController, withSender sender: AnyObject!) -> UIViewController {
    return self.presentingViewController!
}

override func segueForUnwindingToViewController(toViewController: UIViewController, fromViewController: UIViewController, identifier: String?) -> UIStoryboardSegue {
    return UIStoryboardSegue(identifier: identifier, source: fromViewController, destination: toViewController)
}

在 VC4 的方法 1 中,我调用self.performSegueWithId("unwind1"). 虽然当我跟踪执行控制到达这一行但它被忽略了。当我在上述两个方法中设置断点时,执行控制永远不会到达那里。关于我做错了什么有什么想法吗?

4

1 回答 1

0

看来我所做的是对问题的正确解决方案,因为我刚刚注意到它适用于 ios 8.1,但它不适用于 ios 8.0。我认为这是iOS中的错误!

于 2014-12-19T16:55:55.247 回答