UIApplication.shared.keyWindow?.rootViewController で画面を差し替えたい時がありますよね? 例えばどんな時があるかとかと言いますと 認証画面があり signup/signin 後に画面を切り替え sigup/signin 後にチュートリアルの画面を表示 signout 後に認証画面を表示 などがあるかなと思います。 タイトルの通り、とある条件を満たして rootViewController を切り替えると差し替える前の viewController が解放されずに残り続けてしまいます。 これは iOS8 頃から認識していた問題ではありますが、iOS10 現在になっても修正されていません。 rdar://21404408: Memory leak in iOS 8+ after setting window.rootViewControlle