Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS情节串连板分离&;内存管理_Ios_Memory_Storyboard - Fatal编程技术网

iOS情节串连板分离&;内存管理

iOS情节串连板分离&;内存管理,ios,memory,storyboard,Ios,Memory,Storyboard,我想这是一个常见的问题,也许不是 我有一个iOS(7.0+)应用程序(Swift),我使用多个故事板 例如,我有一个登录故事板,一个博客故事板,新闻故事板等等 所有这些故事板都有多个带有列表的视图(TableView)和一些用于查看详细信息的普通视图 不要因为这个讨厌我,我们使用一个汉堡图标(三行菜单图标)在每个故事板的根视图上打开一个导航抽屉,在这些(登录除外)故事板之间切换。菜单可以是无限的,因此汉堡菜单 所以我有一些基于字符串的代码(故事板是) 这会导致上一个故事板在内存中保持活动状态吗?

我想这是一个常见的问题,也许不是

我有一个iOS(7.0+)应用程序(Swift),我使用多个故事板

例如,我有一个登录故事板,一个博客故事板,新闻故事板等等

所有这些故事板都有多个带有列表的视图(TableView)和一些用于查看详细信息的普通视图

不要因为这个讨厌我,我们使用一个汉堡图标(三行菜单图标)在每个故事板的根视图上打开一个导航抽屉,在这些(登录除外)故事板之间切换。菜单可以是无限的,因此汉堡菜单

所以我有一些基于字符串的代码(故事板是)

这会导致上一个故事板在内存中保持活动状态吗?还是通过垃圾处理来收集。我想知道,因为我总共有几百个ViewController,所有这些资源都可能会叠加

谁能告诉我应该记住什么


注意:我在AppDelegate中列出了我的控制器,我知道这不是一个好的做法,但我只是将其用作参考,并且它在ViewDidDisplay上的每个baseController中都设置了,因此它总是最新的。

在iOS 9/OS X 10.11/Xcode 7中,您可以通过情节提要引用来实现这一点

观看此视频(01:13:00-01:14:00):

故事板参考帮助您保持故事板的简单、干净和独立


每个iOS 8设备都可以运行iOS 9。因此,如果允许您将taget从iOS 7升级到iOS 9,这可能是一个选项。(如果有足够的时间发布应用程序。)

如果您继续将视图控制器放在彼此的顶部,则它们将保留在内存中。您需要提供有关如何管理视图层次结构的更多信息,但看起来您可能应该使用容器作为根视图控制器,并要求提供一个新的VC-然后,如果合适,它可以释放旧的VC通常不需要多个故事板。我的默认答案是:不,它不在内存中。但这取决于您的视图堆栈和引用。所以,如果一切都被仔细清理,你不必担心。嗨,正如我所说的,我没有添加视图控制器,我有一个带有导航控制器的故事板,其中包含视图,当深入时,你只能使用返回箭头返回。我只是在想是否要建立新的故事板!您正在通过从序列图像板显示视图控制器来添加视图控制器。如果viewstack中不同序列图像板中的不同视图控制器,则会加载所有序列图像板。
    let storyboard = UIStoryboard(name: storyBoard, bundle: nil)
    var controller:UIViewController


    controller = storyboard.instantiateInitialViewController() as! UIViewController
    AppDelegate.controller!.presentViewController(controller, animated: true, completion: nil)