如何管理实例化的 viewController

How to manage instantiated viewControllers

总而言之,管理 VC 的最佳方式是什么?

就我而言,我的游戏中有 3 个 VC。要在它们之间切换,当前 VC 中的按钮会激活以下代码:

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = storyboard.instantiateViewController(withIdentifier:"firstLevel")
self.present(viewController, animated: false, completion: nil)

此代码有效,但每次它实例化一个新的 VC 时,当存在相同 VC 的两个副本时,这会导致我的游戏出现全局变量问题,例如 "Score"我假设这对记忆力也很不利。

这个问题的最佳解决方案是什么?

我是否应该在实例化下一个 VC 之后通过放置以下代码行来关闭当前 viewController?:

self.dismissViewControllerAnimated(false, completion: nil)

您只需要 1 个 vc 替换 rootViewController

 let viewController = storyboard!.instantiateViewController(withIdentifier:"firstLevel")
(UIApplication.shared.delegate as! AppDelegate).window!.rootViewController = viewController 

因为您当前的代码在堆栈中留下了旧的 vcs,这肯定会导致内存问题