我开发了一个使用UINavigationController来处理同一个UIViewController的多个实例的应用程序,它运行良好。然而,我正在使用的UIViewControllers在从服务器加载的有时非常大的UITableView中使用了大量图像,因此我开始更加注重性能和内存。
不在堆栈顶部的UIViewController会发生什么?如果我向下浏览几个视图,那些都有图像,每当我返回到视图时,UINavigationController都会显示视图而没有任何加载,所以我想知道堆栈上的那些视图是否会以任何方式占用大量有价值的内容资源?比如记忆?
处理这种情况的最佳方法是什么?有什么我应该知道的,我显然没有吗?
谢谢!
答案 0 :(得分:0)
实际上,这是在iOS的文档中解释的。检查XCode>管理器>文档> iOS,有一个很好的图纸,解释UINavigationController堆栈的工作原理,应该比单词更好。
但是,简而言之,您有viewDidLoad和viewWillAppear(以及它们的对立面)方法,可以减轻您的恐惧。它们应该用于创建/删除代码中任何“你现在不需要”的“内存占用”部分。但是,据我所知,如果它由UINavigationController直接控制,你无法控制iOS决定是否需要刷新。