任何人都可以推荐一篇文章或者如何使用UINavigationController创建一个“无限下钻”的例子,就像你在Facebook,IMDB和BrightKite应用中看到的那样?
答案 0 :(得分:4)
UINavigationController
旨在以这种方式使用。如果内存成为一个问题,导航控制器将释放隐藏的视图并在需要导航回堆栈时重新加载它们。 Apple建议您出于此原因从NIB加载UIView
。
向下滚动到第4项“配置根视图控制器的视图。”
答案 1 :(得分:-1)
从来没有这样做过......我会通过使用包含前一个视图内容的轻量级对象(可能只是一个URL?)来保持堆栈。不要只是将新的UIViewController推送到UINavigationController,而是在没有动画的情况下弹出当前的UIViewController,然后按下新视图。但是,我认为这不会正确处理好的动画。
另一种想到的方法是操纵UINavigationController的viewControllers数组。在推送新视图后,只需从数组中删除上一个视图。这样UINavigationController堆栈只能是1或2个元素深。处理后退按钮将创建正确的视图,将其插入viewControllers数组,然后弹出当前视图。您的状态将由轻量级对象堆栈管理,而不是重量级视图控制器。
-dan