有些事我误解了。我目前正在使用Swift开发应用程序。为简化处理它的多个开发人员,该项目分为多个故事板。当应用程序启动时,我们使用App Delegate来确定是否提供教程。
无论选择哪个视图,我们都会实例化故事板,然后是初始视图控制器:
// Show the Welcome Tutorial
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
let initialStoryboard: UIStoryboard = UIStoryboard(name: "WelcomeTutorial", bundle: nil)
let initialViewController: TutorialVC = initialStoryboard.instantiateViewControllerWithIdentifier("TutorialVC") as! TutorialVC
self.window?.rootViewController = initialViewController
self.window?.makeKeyAndVisible()
然后,当我们想要移动到不同的故事板时,我们使用相同的代码,但用presentViewController替换最后两行。但是,据我所知,这是在构建一个堆栈。我们永远不会调用dismissViewController或返回到前一个视图控制器,因此可以将其解除。有没有更好的方法来做到这一点而不创建堆栈?我担心堆栈会浪费内存。我可以通过故事板引用获得segues,但我不知道这是否会产生同样的问题。
答案 0 :(得分:0)
你是对的。在呈现您所描述的视图控制器时,您正在构建堆栈。如果您不再需要模态视图控制器,请将其关闭。如果需要将窗口的根控制器换出另一个控制器,请分配一个新控制器并让旧控制器死掉。一如既往,注意强有力的参考!