しおメモスマートフォン用の表示で見るしおメモ雑多な技術系ブログです。SwiftUIPageViewControllerが登場したのが古いこともあり、公式ドキュメントや、ネットに出ているの情報だと、いまいち各メソッドの挙動までは掴みづらかったので、改めてまとめてみました。Controllerを切り替えたい際に使えます。要素の数や内容によってはUIPageViewController適さない場面もあります。Controllerを変更したい際に利用します。引数の[UIViewController]の要素数は、表示するページの枚数になっている必要があります。Controllerを返す2つのメソッドを定義する必要があります。Controllerが切り替わった後と、setViewControllersなどのあとのスワイプ開始時になります。Controllerを事前に知る必要があるためです。Controllerを取得します。Controllerを取得しにいきます。こちらはこのタイミングで呼ばれず、下記のスワイプ開始時のタイミングで呼ばれることもあります。Controllerがわからない状態なので、スワイプ開始時に、pageViewController(_:viewControllerBefore:)とpageViewController(_:viewControllerAfter:)の両方を呼びます。スワイプが完了時のタイミングでも呼ばれるので、これらのメソッドはBeforeとAfter合わせて、計3回呼ばれることになります。注意点これらを踏まえると、こちらでページ切り替わりのイベントを発行したり、indexをインクリメント、デクリメントするのはDataSourceの意図するところではないため、あまり良くない気がします。UIPageViewControllerDelegate先ほどのページ切り替わりのイベントやindexの変更を行いたい場合は、こちらで行うことになります。pageViewController(_:willTransitionTo:)pageViewController(_:didFinishAnimating:previousViewControllers:transitionCompleted:)transitionの最初と最後にこれらのメソッドが呼ばれるので、こちらを利用します。1ページのみ表示する場合で、そのページのindexを引数としてイベントを発行する場合、このようになります。}}スワイプし始めて、遷移せず戻る場合などもあるので、completedで遷移したかを確認します。開始時に特にすることがなければ、終了時のメソッドだけでもOKです。実際のコードから引っ張っているので、若干説明不足なところもあると思います。ControllerをinstantiateViewControllerで毎回生成するケースです。Identifierをまとめています。}}UIPageViewControllerDelegate先ほどとほぼ同じです。はてなブログProiOSエンジニアです。