Ios 从Modal/Popover中释放Segue,导致开始/结束外观转换的调用不平衡

Ios 从Modal/Popover中释放Segue,导致开始/结束外观转换的调用不平衡,ios,uiviewcontroller,storyboard,segue,Ios,Uiviewcontroller,Storyboard,Segue,我有以下设置: 导航控制器->VC1-推送-->VC2-弹出或模式序列-->VC3 VC3正在退绕回VC1 当从VC2到VC3的序列为PopOver和Modal时,展开结束时会出现警告:UIViewController开始/结束外观转换的调用不平衡“ 如果从VC到VC的顺序为push,则警告消失 你知道如何摆脱这个警告或者为什么它会出现吗?这是一个错误。忽略它(或者,如果你想成为一个好公民,向苹果公司提交一份错误报告)。我能够重现你的问题并找到解决方案 如果放卷逻辑能够解决这一问题,那就太好了

我有以下设置:

导航控制器->VC1-推送-->VC2-弹出或模式序列-->VC3

VC3正在退绕回VC1

当从VC2到VC3的序列为PopOver和Modal时,展开结束时会出现警告:UIViewController开始/结束外观转换的调用不平衡“

如果从VC到VC的顺序为push,则警告消失


你知道如何摆脱这个警告或者为什么它会出现吗?

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

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

如果放卷逻辑能够解决这一问题,那就太好了。也许这是一个bug,也许不是。不管怎样,解决方案都是将VC2(具有弹出窗口的控制器)作为放卷的目标,然后等待它完成显示,然后再弹出导航控制器。这确保了放卷(反向弹出窗口)动画在进一步后退之前有足够的时间完成。即使关闭动画,它仍然需要等待,否则会出现错误

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


现在仍然在发生…仍然是这个错误。。。
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)
        }
    }
}