我有一个实现 UIPageViewController、UIPageViewControllerDelegate、UIPageViewControllerDataSource 的类。我在应用程序的开头有三个 VC。页面显示底部有三个点,其中一个是为所选的vc填写的:
哦哦
其中 O 已填充,而 o 未填充。我将另一个 vc 添加到我想要在其间进行分页的 vc 列表中。我调用
setViewControllers
,这又会强制调用 presentationCount
来触发(返回新值)。
这就是奇怪的地方。我可以在所有 vc(包括新的 vc)之间滑动,但底部的页面显示仍然显示 3 个点:
ooO
如果我点击页面显示底部(不是移动到页面,而是仅移动到页面显示的中间)。它会展开并显示所有四个点:
oooo
一直运行良好,但页面显示不更新。有人知道更新底部页面显示需要什么调用吗?
有点古怪...
要触发对
presentationCount(...)
的调用,我们需要“切换”.delegate
关闭并重新打开。
为了更新
pageControl
(点),我们想要“强制”UI 布局过程。
因此,在您的代码中添加另一个 Page VC(或者如果您也删除它们):
// instantiate and add a new "page" VC
let newVC = TestPageVC()
myPages.append(newVC)
// toggle the delegate off/on
self.delegate = nil
self.delegate = self
// this will "re-load" the page control
self.view.setNeedsLayout()
self.view.layoutIfNeeded()