将视图控制器放在导航堆栈中然后弹出不会破坏内存并导致内存泄漏



我现在从根视图控制器navigating到具有ARSCN视图的second controller,当我从堆栈中弹出控制器时,它不会deallocating内存,并且当您多次前后移动时会发生巨大的内存泄漏

从堆栈中弹出视图控制器时,删除所有子视图 - view.subviews.forEach { $0.removeFromSuperview(( } 并像该视图控制器中使用的对象一样分解您的资源 -自己测试和解决

如果不看到您的代码,很难说发生了什么,但这里有一些建议:

  • 如果你正在实例化第二个UIViewController如果你从第一个UIViewController引用它,你需要确保你这样做的方式不会引起参考循环
  • 您应该考虑使用segue而不是实例化,只有在您有特定原因时才应该使用实例化
  • 如果您使用的是segue,则应使用unwind segue而不是 pop 返回到上一个UIViewController

最新更新