从应用程序中删除所有UIViewControllers并重新开始

时间:2017-02-05 23:52:30

标签: ios uikit

当我的用户注销时,我想从窗口中删除所有UIViewController和UIView,然后重新启动一个新的视图控制器。

我的问题是,当我将窗口的rootViewController设置为新的视图控制器并调试应用程序的视图层次结构时,我可以看到新视图,但是旧视图仅仅是新视图的后面。它们不会被删除,仍然在记忆中。

如何首先删除所有视图控制器和视图?

1 个答案:

答案 0 :(得分:0)

在设置新层次结构之前从关键窗口中删除旧层次结构。

let keyWindow = UIApplication.shared.keyWindow
keyWindow?.rootViewController?.view?.removeFromSuperview()
keyWindow?.rootViewController == //...