【发布时间】:2018-06-14 06:48:04
【问题描述】:
当用户注销并导航到loginVC 时,我想删除所有正在运行的视图控制器。
我的代码:
let nvcMain = UIStoryboard(name: "Main", bundle: nil).instantiateInitialViewController()
for view in (UIApplication.shared.keyWindow?.subviews)!{
view.removeFromSuperview()
}
UIApplication.shared.delegate?.window!!.rootViewController = nvcMain
它重定向到LoginVC,但我的其他 ViewController 仍然打开。(我从调试视图层次结构中检查过)并消耗内存。
所以我想删除所有其他viewControllers。
有人可以提供一些解决方案或建议吗?
【问题讨论】:
-
您不必从 keywindow 中删除所有 ViewController/Views,而只需重置应该完成工作的 rootViewController
-
我也这样做了...但调试视图层次结构显示仍处于打开状态
-
我以前从未遇到过这个问题,但我相信你一定是对
ViewController有强烈的引用,这会阻止他们去初始化