我对iOS开发很新,我在尝试理解UINavigationController
对象时遇到了困难。我猜大多数应用程序都使用它来组织所有窗口,但我不确定。
当应用程序页面是层次结构的成员时,它似乎特别有用,但我的应用程序项目不会以这种方式组织其页面。相反,它更像是一个循环,例如4页:
A - > B - > C - > D - >甲
该模式是否与UINavigationController
兼容,还是我必须使用其他替代方案?
答案 0 :(得分:0)
您可以自由地将同一控制器类的多个实例推送到UINavigation控制器上,但它维护的结构是堆栈。您不能在该堆栈中多次重复使用相同的控制器实例,并且堆栈中的每个控制器都保留在内存中。您可能不希望构建任意深度的堆栈,因为它们将占用大量资源,并且许多级别的“后退”导航会变得迷失方向。
请参阅pushViewController:animated:说明:
视图控制器推入堆栈。此对象不能是标签栏控制器。如果视图控制器已经在导航堆栈上,则此方法将引发异常。
答案 1 :(得分:0)
UINavigationController
不是构建UIViewControllers
的无限循环的好主意,因为UINavigationController
的行为类似于堆栈。每个推送UIViewController
都将被保留并消耗内存。此外,重复UIViewControllers
来构建循环并不是(轻松)。
可以使用UIPageViewController
存档,以便重复使用UIViewControllers
。
Cycling from last to first (and vice versa) with UIPageViewController