以编程方式设置新页面后,UIPageViewController的位置混乱了。怎么修?

时间:2019-05-23 00:22:00

标签: ios swift uipageviewcontroller

通常,我构建一个UIViewControllers数组,然后通过UIPageViewController显示它们。在我的管理控制器类中,我添加了一种直接进入页面的方法。但是这样做之后,UIPageViewController显示了错误的相邻页面。

我很确定这是因为它做出了一个错误的假设:它从页面开始;并且如果您将一个新的控制器推到其上并说行进方向在右侧,则UIPageViewController会假定先前的控制器是在左侧的控制器。

如果从第0页开始并将第2页的控制器推到PageViewController上,则当然会失败。如果您向左滑动,则会再次看到页面0,因为UIPageViewController似乎已将原始视图作为左侧的视图进行了缓存。它从不调用其委托来“获取以前的视图控制器”,因为它认为它已经拥有它。但是它应该调用并获取第1页。

enter image description here 无论如何,这是我的猜测,这是基于行为和以下事实:如果我在向右跳后向左滑动,则永远不会调用我的代表的“获取以前的控制器”。那么,我是否需要执行一系列推送操作才能从第0页转到第2页?

有人有更好的解决方法或洞察力吗?谢谢!

1 个答案:

答案 0 :(得分:0)

根据此处提供的见解和解决方法(我证实),该理论似乎是正确的:UIPageViewController viewControllerAfterViewController not called after once returned nil