navigationController..popViewController(animated:true)不会取消初始化视图控制器

时间:2019-08-31 02:00:14

标签: ios swift uiviewcontroller uinavigationcontroller

当我使用navigationController?.popViewController(animated: true)或解雇UINavigationController时,我的deinit的{​​{1}}方法不会被调用。这是否意味着它们没有在内存中被释放?

如何取消分配ViewController及其所有UINavigationController

1 个答案:

答案 0 :(得分:0)

如上所述,您可能在某个变量中保存了对视图控制器的引用。如果是这种情况,则该变量会导致Swift将您的View Controller保留在内存中。您可以做一些事情来解决该问题:

  • 将该变量设置为weak var,这意味着,如果其最后一个变量保留对某物的引用,则会将其释放。
  • 弹出视图控制器时,将变量设置为nil。如果您没有对视图控制器的引用,则将其释放。

清除程序注释将有望帮助您找到有问题的变量。