UIPageViewController 编程手动翻页时未更新页面指示器。

4
当我使用类似于this answer的方法在UIPageViewController中以编程方式翻页时,页面指示器没有更新。向下/向上滑动页面会按预期更新页面指示器。我需要做什么来更新页面指示器,当以编程方式翻页时?即如何设置当前“索引”,以便页面指示器知道要显示哪个页面指示器作为活动状态?
我注意到在文档中,以下内容被说明:
如果“支持页面指示器”中的两种方法都被实现,并且页面视图控制器的转换样式是UIPageViewControllerTransitionStyleScroll,则会显示一个页面指示器。这些方法都在调用setViewControllers:direction:animated:completion:方法后调用。在手势驱动导航后,这些方法不会被调用。索引会自动更新,预计视图控制器的数量保持不变。
(请参见上面的粗体文本)

UIPageViewController文档

这是否意味着,如果您不使用手势翻页,则无法更新UIPageIndicators?

感谢您的帮助。

2个回答

4
你可以根据正确的页面索引实现以下数据源协议方法:
- (NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController
{
 NSInteger currentPageIndex=0;
 //find out actual page index of the current view controller
return currentPageIndex;
}

0

这意味着您一次性设置页面的数量第一页,不能在不再调用setViewControllers:direction:animated:completion:的情况下添加(或删除)到Page Control 页面。

基本上,它是在DataSource协议中定义的只写属性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接