ios - presentViewController会不会导致内存耗尽?

标签 ios swift

有一点我误解了。我目前正在使用 Swift 开发一个应用程序。为了简化多个开发人员的工作,该项目被分成多个 Storyboard。当应用程序启动时,我们使用 App Delegate 来确定是否显示教程。

无论选择哪个 View ,我们都实例化 Storyboard,然后实例化初始 View Controller ,如下所示:

// 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()

然后,当我们想移动到不同的 Storyboard时,我们使用相同的代码,但将最后两行替换为 presentViewController。但是,据我了解,这是在构建堆栈。我们永远不会调用 dismissViewController 或返回到之前的 View Controller ,因此它可以被关闭。有没有更好的方法可以在不创建堆栈的情况下执行此操作?我担心堆栈正在浪费内存。我可以让 segues 与 Storyboard 引用一起工作,但我不知道这是否会产生同样的问题。

最佳答案

你是对的。当像您描述的那样呈现 View Controller 时,您正在构建一个堆栈。如果您不再需要模态视图 Controller ,请关闭它。如果窗口的根 Controller 需要换成另一个,分配一个新的并让旧的死掉。一如既往,注意强引用!

关于ios - presentViewController会不会导致内存耗尽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34730996/

相关文章:

iOS:隐藏/禁用新的 iOS 底栏

ios - 从 Unity 5.5 到 iOS 的 Kudan Camera 问题

iphone - 围绕中心旋转矩形

mysql - 预览任务完成后快速执行任务

macos - 使用 swift 为 NSTextView 设置默认字体

swift - 如何更新 NSView 图层位置和 anchor 以与鼠标事件的 NSView 框架同时进行转换

swift - PNG 图像未保存到文档目录

ios - 重置保存的 map 图钉,iOS Swift

ios - DJI sdk 获取RTK信息

swift - 最小化应用程序时避免调用 traitCollectionDidChange