我正在使用UIPageViewController
在带有一些数据的页面之间实现无限水平滚动。转换类型设置为Scroll。
一旦用户开始水平滚动,我就会通过viewControllerAfterViewController
和viewControllerBeforeViewController
代表返回前一页和下一页的详细视图控制器。
在任何给定时间,pageViewController都会有一个滚动视图和这个滚动视图中的三个页面(我可以确认使用Xcode Debug View Hierarchy)。如何访问隐形页面? .viewControllers
属性仅包含与可见页面对应的一个元素。
答案 0 :(得分:1)
UIPageViewController
的默认行为是处置当前不可见的页面。它有点像UITableView
,但是单元格是视图控制器。访问隐形vcs的唯一方法是在构建它们之后保留强大的指针(对于无限数量的页面可能是不明智的)或者根据需要构建特定的指针。
这应该让你考虑你打算用隐形vc做什么。如果您正在考虑改变它的外观,请再想一想:它不存在。同样,这与UITableView
有点类似,我们通常不会直接更改单元格。相反,我们更改模型和单元格更改,因为它是根据cellForRowAtIndexPath
中的模型进行配置的:。
这里的想法相同。保持一个独立于页面vcs的模型。当他们获得viewWillAppear
时,他们可以根据模型配置他们的视图。