展开segue不会释放我的视图控制器

时间:2014-12-15 10:14:58

标签: ios objective-c memory-management uiviewcontroller xcode-storyboard

我有这样的事情:

我的rootViewControllernavigationBar - 让它为A.其余为正常UIViewControllers,并通过推送(通过按钮IBAction方法)以编程方式进行。

Flow diagram

然而从D - >; A,我使用unwind segue(也通过performSegueWithIdentifier:sender:)。

这里的问题是当执行segue时,B,C和D根本不是deallocated。这不仅会导致内存泄漏问题,而且我的计时器仍在运行。我不确定为什么会这样。我认为放松segues假设为你处理所有这些?知道为什么吗?

2 个答案:

答案 0 :(得分:3)

-(void)viewWillDisappear:(BOOL)animated{
    [timer invalidate];
    timer = nil;
}

希望这会对你有帮助......对于其他控制器上的计时器无效

答案 1 :(得分:2)

问题在于NSTimer

NSTimer保留目标。因此,如果视图控制器使用target:self启动计时器,只要计时器正在运行,它就不会被释放。

您可以获得更多信息here