如何检查 UIPageViewController VC 何时更改为另一个?

How to check when UIPageViewController VC changes to another?

我尝试通过滑动来检查我的 UIPageViewController 的 VC 何时更改为另一个。 什么函数处理这个,我如何获得新的页面索引?

我知道函数:

func pageViewController(_ pageViewController: UIPageViewController, willTransitionTo pendingViewControllers: [UIViewController]) {
  //code
}

非常感谢。

这段代码应该可以解决问题:

func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) {

    guard completed else { return }

    guard let index = (pageViewController.viewControllers?.first as? ContentViewController)?.index else { return }

    guard let index = pageViewController.viewControllers?.first?.view.tag else { return }

    guard let vc = pageViewController.viewControllers?.first else { return }

    let index: Int

    switch vc {
    case is FirstViewController:
        index = 0
    case is SecondViewController:
        index = 1
    default:
        index = 2
    }
}

您在这里所做的是手动保存当前选择的索引。只要过渡是动画的,这应该就可以工作,我猜它应该总是这样。