2

当我使用 3D Touch Peek 和 Pop 视图控制器时,我的应用程序UIApplication.shared.delegate?.window??.rootViewController被 Apple 保留_UIFullScreenPresentationController

因此,如果我切换 rootViewController,则永远不会释放旧的。

我制作了一个演示应用程序来帮助理解: https ://github.com/rapinto/PeekAndPopLeak

重现步骤:

  • 3d touch 在根的背景上ViewController推一个新的ViewController.
  • 按下按钮切换应用程序rootViewController
  • 打开 Debug Memory Graph Xcode 工具:现在有 2 个活ViewController
  • 可选:如果重复步骤 1 到 3,ViewController则会泄漏更多

取消注册预览上下文并不能解决它。

在此处输入图像描述在此处输入图像描述

任何人都可以帮助我吗?

PS:如果您不偷看并弹出第二个ViewControllerrootViewController则不会保留/泄漏

4

0 回答 0