从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) } } }