3

当我使用类似于此答案的方法以编程方式在 UIPageViewController 中翻页时,页面指示器不会更新。滑动到下一页/上一页按预期更新页面指示器。以编程方式翻页时,我需要做什么来更新页面指示器?即如何在以编程方式更改页面后设置当前“索引”,以便页面指示器知道哪个页面指示器显示为活动?

我在文档中注意到,说明如下:

如果实现了“支持页面指示器”中的两个方法,并且页面视图控制器的过渡样式为 UIPageViewControllerTransitionStyleScroll,则页面指示器是可见的。这两个方法都是在调用 setViewControllers:direction:animated:completion: 方法之后调用的。在手势驱动导航之后,这些方法都不会被调用。索引会自动更新,并且视图控制器的数量预计将保持不变。

(见上面的粗体字)

UIPageViewController 文档

这是否意味着如果你不使用手势来翻页,那么就没有办法更新 UIPageIndicators 了?

在此先感谢您的帮助。

4

2 回答 2

3

您可以使用正确的页面索引实现以下数据源协议方法:

- (NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController
{
 NSInteger currentPageIndex=0;
 //find out actual page index of the current view controller
return currentPageIndex;
}
于 2015-02-06T00:06:01.700 回答
0

这意味着您正在设置一次页数第一页,并且无法在不再次Page Control调用的情况下添加(或删除)页面。 它基本上是协议中定义的只写属性。setViewControllers:direction:animated:completion:

DataSource

于 2013-02-27T23:24:43.073 回答