Swift
ios11

iOS11でPageViewControllerの現在のページが取れない時の対処法

以前は pageViewController.childViewControllers.first で現在のページがとれていたと思うのですが、iOS11.1 でとれなくてはまりました。

一応、対処法を見つけたのでメモしておきます。

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

        DispatchQueue.main.async {
            if !completed { return }

            let currentVC = pageViewController.childViewControllers.filter {
                !previousViewControllers.contains($0)
            }.first

            // currentVCつかった処理をかく
        }
    }