UINavigationController适合页面循环吗?

时间:2015-07-09 22:38:21

标签: ios uinavigationcontroller

我对iOS开发很新,我在尝试理解UINavigationController对象时遇到了困难。我猜大多数应用程序都使用它来组织所有窗口,但我不确定。

当应用程序页面是层次结构的成员时,它似乎特别有用,但我的应用程序项目不会以这种方式组织其页面。相反,它更像是一个循环,例如4页:

A - > B - > C - > D - >甲

该模式是否与UINavigationController兼容,还是我必须使用其他替代方案?

2 个答案:

答案 0 :(得分:0)

您可以自由地将同一控制器类的多个实例推送到UINavigation控制器上,但它维护的结构是堆栈。您不能在该堆栈中多次重复使用相同的控制器实例,并且堆栈中的每个控制器都保留在内存中。您可能不希望构建任意深度的堆栈,因为它们将占用大量资源,并且许多级别的“后退”导航会变得迷失方向。

请参阅pushViewController:animated:说明:

  

视图控制器推入堆栈。此对象不能是标签栏控制器。如果视图控制器已经在导航堆栈上,则此方法将引发异常。

答案 1 :(得分:0)

UINavigationController不是构建UIViewControllers的无限循环的好主意,因为UINavigationController的行为类似于堆栈。每个推送UIViewController都将被保留并消耗内存。此外,重复UIViewControllers来构建循环并不是(轻松)。

可以使用UIPageViewController存档,以便重复使用UIViewControllers

https://developer.apple.com/library/prerelease/ios//documentation/UIKit/Reference/UIPageViewControllerClassReferenceClassRef/index.html

Cycling from last to first (and vice versa) with UIPageViewController