UIPageViewController在哪里缓存上一个和下一个控制器?

问题描述 投票:7回答:3

[当UIPageViewController使用viewControllerBeforeViewController和viewControllerAfterViewController方法调用数据源时,它将获取将在用户再次滑动时显示的视图控制器。是否存在可写属性,可在其中保留此数据直到需要使用它?我问的原因是我希望用户能够向前或向后滑动,或者只需轻按以前进到下一张幻灯片。但是,如果点击以从第一张幻灯片前进到第二张幻灯片(使用setViewControllers方法前进),则无法向后滑动。没有要返回的后台控制器。这仅影响第二张幻灯片。因此,我需要能够以编程方式设置先前的控制器。

任何帮助将不胜感激。

谢谢。

ios uipageviewcontroller
3个回答
6
投票

我有类似的问题,发现UIPageViewController将其缓存的View Controller页面存储在childViewControllers数组中。


0
投票

无法访问缓存的视图控制器。在实现数据源方法以启用滑动时,您可以保留一个指针:

– pageViewController:viewControllerBeforeViewController:
– pageViewController:viewControllerAfterViewController:

0
投票

如Kelin的回答所述,子数组包含“已加载”的视图控制器。此信息也可以用于传播已加载的视图控制器之间的更改。 (一种常见的情况是结束刷新控件的刷新。)

在Swift中,您可以执行以下操作:

for vc in children {
    if let tableVC = vc as? UITableViewController {
         tableVC.refreshControl?.endRefreshing()
    }
}

((selfUIPageViewController类型)

© www.soinside.com 2019 - 2024. All rights reserved.