自从我开始使用iOS开发以来,这个问题一直存在于我的脑海中:UINavigationController
和内存的使用。
我看到很多应用程序,如iMail,Find Friends,Notes等,其中UINavigationController非常有意义。它们允许您深入挖掘两层或三层的层次结构,就是这样。
但是想象一下,从根文件夹开始浏览深层次结构,就像Mac的文件系统一样。 如果我使用UINavigationController,我会继续在堆栈上推送数百个控制器(最坏的情况)。我不认为这是一个很好的用法。可能存在被推动的控制器变得非常沉重的情况(就内存而言)并且他们只是坐在那里什么都没有。
我希望有一个UINavigationController的“动态”版本:它只会告诉你在导航层次结构时创建的内容,而不是只是弹出层次结构。
我现在的问题是:UINavigationController是否意味着用于深层次结构?如果你想要所有的动画,酒吧项目等,有什么好的选择? 或者我看到哪些问题没有?
答案 0 :(得分:1)
UINavigationController
是动态的。当内存不足时,您可以释放层次结构中不可见的部分使用的内存 - 当您获得内存不足时,这是一个手动步骤 - 操作系统会在相同的情况下自动释放视图。
当顶部视图控制器从堆栈弹出时,将调用viewDidLoad
方法,允许您重新创建视图。
如果确实存在问题,iOS5允许您创建自己的“容器”视图,因此您可以创建自己的导航控制器,完全按照您的建议进行操作。查看UIViewController
文档的“实现容器视图控制器”部分。
话虽如此,您可能需要添加一些快捷方式,以便在非常深层次的层次结构中工作。如果你一次只能回到一个屏幕,UI就会变得很痛苦。