目標は、前方にのみ移動できる UIPageViewController を作成することです。UIPageViewController のコンテンツを提供するためにデータ ソースを使用しています。方向はUIPageViewControllerNavigationDirectionForwardに設定され、遷移スタイルはUIPageViewControllerTransitionStyleScrollです。
の実装
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{
// returns the next view controller
}
次のView Controllerを返しますが、以下は後方への移動が不可能であることを保証する必要があります
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
{
return nil;
}
nil を返すと、(ドキュメントに記載されているように) ナビゲーションが不可能であることを示す必要があります。ただし、常に 1 ページ戻ることができます。10ページあるとしましょう。すべてのページを前方にスクロールできますが、どのページでも1ページ後方にスクロールできます。(例: 5 ページで 4 ページに戻ることができ、8 ページで 7 ページに戻ることができます。)
データ ソースを使用せずにsetViewControllers:direction:animated:completion:メソッドを使用することでこれを回避できることはわかっていますが、試行が失敗する理由を理解したいと思います。