我有一个UIPageViewController
只有两个UIViewControllers
。UISegmentControl
上方UIPageViewController
在“新”和“热”之间发生变化取决于UIPageViewController
所在的页面。这种情况大约有90%的时间可以使用,但是,如果我按this问题中的说明进行滑动,则UIPageViewController
会对其所在的页面感到困惑。当实际显示“热门”页面时,这会导致UISegmentControl
说“新”。
每个视图控制器在首次实例化时都会被分配一个页面索引(0或1)。然后,以下代码更改分段控制索引:
func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) {
if completed,
let index = (pageViewController.viewControllers?.last as? MyCollectionViewController)?.pageIndex,
let pageType = PageType(rawValue: index) {
currentPage = pageType
segmentedControl.selectedSegmentIndex = index
}
}
奇怪的是,当错误发生时,我打印出pageIndex
最后pageViewControllers
的{{1}},并且它与segmentedControl索引一致。然而在屏幕上,100%的不是它声称正在显示的viewController ......