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

我有这样的东西:

我的rootViewController是一个navigationBar – 让这是A.剩下的是正常的UIViewControllers ,并通过推(通过buttonIBAction方法)编程方式继续。

流程图

但是从D – > A,我使用unwind segue(也通过performSegueWithIdentifier:sender :)。

这里的问题是当执行segue时,B,C和D根本就不被deallocated 。 这不仅导致内存泄漏问题,但我的计时器仍在运行。 我不确定为什么是这样。 我认为放松的赛段是想为你处理所有这些? 任何想法为什么?

问题在于NSTimer

NSTimer保留其目标。 所以如果一个视图控制器用target:self启动一个定时器,只要定时器正在运行,它就不会被释放。

你可以在这里获得更多的信息

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

希望这会帮助你…在其他控制器上的定时器无效