在Segue之后释放UIViewController

时间:2016-08-03 18:49:33

标签: ios swift

我想从一个视图控制器转换到另一个视图控制器但没有任何动画。在故事板上,我选择了Push segue,在右侧面板上,取消选中“Animate”选项。然后在代码中,每当我想要进行转换时,我做了:     self.performSegueWithIdentifier(“TestSegue”,sender:nil)

现在的问题是以前的视图控制器没有被释放,内存不断增加。

问题:

1)我使用没有动画的segues的方法是否正确?

2)如何在执行segue后从内存中取消分配视图控制器?

请帮助我解决这些问题。

注意:我使用的是Swift

2 个答案:

答案 0 :(得分:2)

我认为这对您执行另一个ViewController的方式存在问题。我认为你在第二个ViewController上有一个很强的参考,你正在执行一个segue,它不会让ARC取消分配ViewController。

发布整个代码,以便我可以更好地分析可能出错的内容。

答案 1 :(得分:0)

如果您在推送之外使用某种类型的segue,则会自动取消分配先前的视图控制器。尝试像这样呈现视图控制器:

let vc = self.storyboard?.instantiateViewControllerWithIdentifier("myVC") as! MyVCName
self.presentViewController(vc, animated: false, completion: nil)