导航控制器如何跟踪多个UIViewControllers?

3
我开发了一个应用程序,使用UINavigationController处理多个相同的UIViewController实例,效果非常好。但是,我正在使用的UIViewControllers在从服务器加载时会在一个有时很大的UITableView中使用大量图像,因此我开始更加关注性能和内存。
如果一个UIViewController不在堆栈的顶部会发生什么?如果我浏览了几个视图(所有这些视图都有图像),每当我返回到该视图时,UINavigationController就会呈现视图而无需加载,所以我想知道那些在堆栈上的视图是否有可能占用大量宝贵资源?比如内存?
如何处理这种情况最好?还有什么我需要知道的吗?
谢谢!
1个回答

0

实际上,这在iOS文档中有解释。检查XCode>Organiser>Documentation>iOS,那里有一个漂亮的图示解释了UINavigationController堆栈的工作原理,这应该比文字更好。

然而,简而言之,你有viewDidLoad和viewWillAppear(以及它们的相反方法),用于缓解你的担忧。它们应该用于创建/删除任何你现在不需要的“内存占用”代码部分。但是,据我所知,如果直接由UINavigationController控制,你无法控制iOS将决定刷新或不刷新哪些内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接