Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 从“展开”序列中关闭视图控制器_Ios_Swift_Uiviewcontroller_Swift2 - Fatal编程技术网

Ios 从“展开”序列中关闭视图控制器

Ios 从“展开”序列中关闭视图控制器,ios,swift,uiviewcontroller,swift2,Ios,Swift,Uiviewcontroller,Swift2,我有3个视图控制器。我可以从A到B,然后从B到C。我已经从B到A做了一个放松的过程。当它被执行时,我可以看到视图控制器B已经被释放,并且VC A出现在屏幕上。 为了做到这一点,我在VC A中添加了下一个代码,并在VC B中的按钮上设置了unwind segue @IBAction func unvindSegueToMenu(segue:UIStoryboardSegue) {} 然而,当我转到VC C(从B)时,我想执行从VC C到A的展开顺序。为此,我将下一个代码放入VC B类 @IBAc

我有3个视图控制器。我可以从A到B,然后从B到C。我已经从B到A做了一个放松的过程。当它被执行时,我可以看到视图控制器B已经被释放,并且VC A出现在屏幕上。 为了做到这一点,我在VC A中添加了下一个代码,并在VC B中的按钮上设置了unwind segue

@IBAction func unvindSegueToMenu(segue:UIStoryboardSegue) {}
然而,当我转到VC C(从B)时,我想执行从VC C到A的展开顺序。为此,我将下一个代码放入VC B类

@IBAction func unvindSegueToMainMenu(segue:UIStoryboardSegue) {
    self.dismissViewControllerAnimated(false, completion: nil)
}
在我按下VC C中的按钮后,它会显示我想要的VC A,但在分配摘要中,我可以看到VC B尚未释放。
我的错误是什么?我如何处理它

通常,您的代码中有错误。 我进行了测试,可以清楚地看到,VC B在执行解绑序列后被解除分配

首先确保你做对了。(例如,应在目标VC中实现展开序列的执行方法)


此外,您还可以在执行“展开”后检查navigationController中有多少个ViewController。在您的情况下,应该是2个,但如果您以正确的方式执行,则只有一个ViewController。

为什么需要将“unvindSegueToMenu:”实现放在B中?它应该在A中,对吗?肯定是出了问题,我把方法移到了A,它显示了我想要的VC A,但VC B仍然被分配。我发现了一个错误。在我的VC C中,我使用SKView来呈现SKScene,在我执行unwind segue之前,我应该在我的SKScene上使用.removeAllChildren()方法。