重新初始化导航控制器的根视图控制器后内存泄漏

时间:2017-04-19 10:33:55

标签: ios swift memory-leaks

我使用此代码重新加载导航控制器的根视图控制器。

if let newVC  = self?.storyboard?.instantiateViewController(withIdentifier: "MyViewController"), let nc = self?.navigationController {
                nc.setViewControllers([newVC], animated: true)
            }

但我发现此代码存在内存泄漏:使用此代码未释放内存。

如何抓住并解决这个问题?有什么建议吗?

1 个答案:

答案 0 :(得分:0)

设置新视图控制器时,堆栈的全部内容将被新的viewControllers替换。所有viewControllers都会弹出。

您可以通过编写被替换的所有viewControllers的deinit方法来检查这一点。替换viewControllers时会调用所有deinit方法。它会自动释放内存,您不必显式处理内存或释放内存。

点击此链接:https://developer.apple.com/reference/uikit/uinavigationcontroller/1621861-setviewcontrollers?language=objc

相关问题