UIPageViewController 具有未知数量的 UIViewController 实例

Posted

技术标签:

【中文标题】UIPageViewController 具有未知数量的 UIViewController 实例【英文标题】:UIPageViewController with unknown number of UIViewController instances 【发布时间】:2018-12-12 18:58:53 【问题描述】:

我想创建一个UIPageViewController,它只使用一个UIViewController,但它的每个新实例每次都会保存不同的数据。 UIPageViewController 每次 [previous][current][next] 需要保存 3 个 UIViewController 实例并加载下一个或以前的在旅途中。重要的是要说我不使用故事板。

我找到了this 链接,但我不知道该怎么做,因为在setupPageController() 上,他正在用他之前创建的UIViewControllers 初始化UIPageViewController (pageViewController.setViewControllers)

这样做的正确和最佳方法是什么?

【问题讨论】:

【参考方案1】:

UIPageViewController 需要持有 3 个实例

不,它没有。页面视图控制器没有固定的页面集;它只有一页。您无需提前计划即可提前创建任何其他页面。这就是重点。当您被通知用户想要下一页或上一页时,您可以立即决定它将是什么并创建它。你可以使用任何你喜欢的逻辑。

【讨论】:

这个例子展示了一个典型的架构。我为每个页面使用相同视图控制器的不同实例。我在数据源方法中的逻辑很简单;你的可能非常不同。但基本架构总是这样。 github.com/mattneub/Programming-ios-Book-Examples/blob/master/…

以上是关于UIPageViewController 具有未知数量的 UIViewController 实例的主要内容,如果未能解决你的问题,请参考以下文章

具有自定义过渡样式的 UIPageViewController

UIPageViewController 在 childViewController 中具有动态内容

UIPageViewController 具有一个恒定的背景图像

具有多个 XIB 的 UIPageViewController

UIPageViewController 缓存和交换具有相似内容的页面的视图层次结构

插入 UIPanGestureRecognizer 以关闭具有转换类型 UIPageViewControllerTransitionStyleScroll 的 UIPageViewController