有一些我误解的地方。我目前正在使用Swift开发一个应用程序。为了简化多个开发人员一起工作,该项目被分割成多个故事板。当应用程序启动时,我们使用App Delegate来确定是否呈现教程。
无论选择哪个视图,我们都会实例化storyboard,然后像下面这样实例化初始视图控制器:
// 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或返回到先前的视图控制器,因此它可以被关闭。有没有更好的方法在不创建堆栈的情况下完成这个任务?我担心这个堆栈会浪费内存。我可能可以通过故事板引用使转场实现,但我不知道这是否会产生同样的问题。