更新 UIPageViewController 中 VC 的数量不会更新页面显示

问题描述 投票:0回答:1

我有一个实现 UIPageViewController、UIPageViewControllerDelegate、UIPageViewControllerDataSource 的类。我在应用程序的开头有三个 VC。页面显示底部有三个点,其中一个是为所选的vc填写的:

哦哦

其中 O 已填充,而 o 未填充。我将另一个 vc 添加到我想要在其间进行分页的 vc 列表中。我调用

setViewControllers
,这又会强制调用
presentationCount
来触发(返回新值)。

这就是奇怪的地方。我可以在所有 vc(包括新的 vc)之间滑动,但底部的页面显示仍然显示 3 个点:

ooO

如果我点击页面显示底部(不是移动到页面,而是仅移动到页面显示的中间)。它会展开并显示所有四个点:

oooo

一直运行良好,但页面显示不更新。有人知道更新底部页面显示需要什么调用吗?

ios swift uipageviewcontroller
1个回答
0
投票

有点古怪...

要触发对

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()
    
© www.soinside.com 2019 - 2024. All rights reserved.