我的iOS应用程序需要支持表示数组中对象的视图之间的导航。数组是有序的,最多可包含1000个对象。导航必须像UINavigationController
那样,即每个视图必须为用户提供移动到下一个和上一个对象视图的ctrls。视图之间的移动必须通过动画过渡完成。每个视图的内容都是相同的。
我理解并知道如何使用UINavigationController
。我担心的是UINavigationController
拥有一堆UIViewControllers
,它对于最后一个元素来说会相当大。
是否可能只保留一个UIViewController
来显示当前对象对象并将UINavigationController's
转换行为模拟为下一个和上一个对象?所以我想在UIViewController mock UINavigationController's
转换中更改对象并更新UIViewController内容。
答案 0 :(得分:0)
我担心的是UINavigationController拥有一堆UIViewControllers,它对于最后一个元素来说会相当大。
不要过早优化! View控制器很轻巧。 Views 是重量级的,但所有视图控制器的视图除了" top"导航控制器中的(可见)视图控制器不在界面中,因此它们没有后备存储并占用很少的内存。如果存在内存问题,那么这是一个简单的解决方案:操纵UINavigationController" stack"视图控制器直接删除中间视图控制器。 (请参阅UINavigationController documentation了解如何执行此操作。)
另一方面,我不得不说你的整个架构听起来像UIPageViewController比UINavigationController好得多。 UIPageViewController正好适用于移动到之前或之后的页面"在"书"排列,奇妙的是只有一个视图控制器存在于任何给定的时刻(或者,最多,三个 - 如果你使用"滚动"样式的页面视图控制器,上一个和下一个视图控制器总是自动存在,因此滚动到它们很快。)