从Modal / Popover中解除Segue导致对开始/结束外观转换的不平衡调用

我有以下设置:

导航控制器 – > VC1 -Push – > VC2 -PopOver或Modal Segue – > VC3。

VC3正在退回到VC1。

当从VC2到VC3的Segue是PopOver和Modal时,unwind以警告结束:UIViewController的开始/结束外观转换的不平衡调用“

如果推动从VC到VC的Segue,警告就会消失。

在此处输入图像描述 任何想法如何摆脱警告或为什么它甚至显示?

这是一个错误。 忽略它(或者,如果你想成为一个好公民,请向Apple提交一份错误报告)。

我能够重现你的问题并找到解决方案!

如果解开逻辑会处理这个问题会很棒。 也许这是一个错误,也许不是。 无论哪种方式,解决方案是使VC2(具有弹出窗口的控制器)成为倒带的目标,然后在弹出导航控制器之前等待它完成出现。 这确保了倒带(反向弹出)动画有足够的时间完成后再向后移动。 即使动画关闭,它仍然需要等待,否则你会收到错误。

您的VC2代码应如下所示。 (迅速)

class VC2: UIViewController { private var unwind = false @IBAction func unwindToVC1(segue:UIStoryboardSegue) { unwind = true } override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) if unwind { self.navigationController?.popViewControllerAnimated(false) } } }