UIPageViewController didFinishAnimating声称显示不同的视图

时间:2017-06-28 13:56:34

标签: ios swift uipageviewcontroller

我有一个UIPageViewController只有两个UIViewControllersUISegmentControl上方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 ......

0 个答案:

没有答案