UIPageViewController如何访问不可见的页面

时间:2014-09-16 18:44:39

标签: ios objective-c cocoa-touch uipageviewcontroller

我正在使用UIPageViewController在带有一些数据的页面之间实现无限水平滚动。转换类型设置为Scroll。

一旦用户开始水平滚动,我就会通过viewControllerAfterViewControllerviewControllerBeforeViewController代表返回前一页和下一页的详细视图控制器。

在任何给定时间,pageViewController都会有一个滚动视图和这个滚动视图中的三个页面(我可以确认使用Xcode Debug View Hierarchy)。如何访问隐形页面? .viewControllers属性仅包含与可见页面对应的一个元素。

1 个答案:

答案 0 :(得分:1)

UIPageViewController的默认行为是处置当前不可见的页面。它有点像UITableView,但是单元格是视图控制器。访问隐形vcs的唯一方法是在构建它们之后保留强大的指针(对于无限数量的页面可能是不明智的)或者根据需要构建特定的指针。

这应该让你考虑你打算用隐形vc做什么。如果您正在考虑改变它的外观,请再想一想:它不存在。同样,这与UITableView有点类似,我们通常不会直接更改单元格。相反,我们更改模型和单元格更改,因为它是根据cellForRowAtIndexPath中的模型进行配置的:。

这里的想法相同。保持一个独立于页面vcs的模型。当他们获得viewWillAppear时,他们可以根据模型配置他们的视图。