Когда я использую 3D Touch для просмотра и извлечения контроллера представления, мое приложение UIApplication.shared.delegate?.window??.rootViewController
сохраняется Apple _UIFullScreenPresentationController
Так что, если я переключу rootViewController, старый никогда не будет выпущен.
Я сделал демонстрационное приложение, чтобы помочь понять:
https://github.com/rapinto/PeekAndPopLeak
шаг для воспроизведения:
- 3d-касание на фоне корня
ViewController
, чтобы выдвинуть новый ViewController
.
- Нажмите кнопку, чтобы переключить приложение
rootViewController
- Откройте инструмент Xcode Debug Memory Graph: теперь есть 2 живых
ViewController
- Необязательно: если вы повторите шаги с 1 по 3, больше
ViewController
просочится
Отмена регистрации контекста предварительного просмотра не решает ее.
![enter image description here](https://i.stack.imgur.com/BsI8p.png)
![enter image description here](https://i.stack.imgur.com/zsxEu.png)
Кто-нибудь может мне помочь?
PS: Если вы не заглядываете и нажимаете, чтобы нажать вторую ViewController
, rootViewController
не сохраняется / не просачивается