2017-07-14 4 views
3

私はXcode 8のデフォルトのページベースのアプリケーションを使用していますが、特定のページにジャンプしようとしています(左右にスワイプするのではなく)。私はStackOverflowの上で同様の質問を発見したが、答えは主にこの方法を使うことを提案:UIPageViewControllerで特定のページにジャンプするには?

setViewControllers:direction:animated:completion 

私が表示されるページの数を変更する必要はありませんので、私はsetViewControllersの使用を避けることができますか? Xcodeののページベースのアプリケーションテンプレートを通じて読んだ後、私はこの機能が働くかもしれないと思う

func viewControllerAtIndex(_ index: Int, storyboard: UIStoryboard) -> DataViewController? 

しかし、私はModelController(として機能コントローラいるので、パラメータstoryboard: UIStoryboardを取得するかわかりませんUIPageViewControllerDataSource)はストーリーボードの一部ではありません。

+0

https://stackoverflow.com/a/45026010/5461400 –

+0

これを試してみます。http://www.appcoda.com/uipageviewcontroller-storyboard-tutorial/ –

+0

ありがとうございました!私はあなたの答えを読んだ。 setViewControllersを使用しているときに、1つの "page"を表示させるだけでよいことは間違いありませんか? – swiftlycoderr

答えて

1

このメソッドに渡されるビューコントローラは、アニメーションの完了後に表示されるコントローラです。データソースを使用して、ユーザーがナビゲートする追加のView Controllerを提供します。

ページビューコントローラインターフェイスを定義するときに、コンテンツビューコントローラを一度に1つずつ(または背骨の位置と両面の状態に応じて2つずつ)、または必要に応じてデータソースを使用して提供できます。一度に1つずつコンテンツビューコントローラを提供する場合は、 setViewControllers(_:direction:animated:completion:)メソッドを使用して、現在のコンテンツビューコントローラを設定します。ジェスチャベースのナビゲーションをサポートするには、データソースオブジェクトを使用してView Controllerを提供する必要があります。

ページビューコントローラのデータソースはオンデマンドでコンテンツビューコントローラを提供する責任があり、 UIPageViewControllerDataSourceプロトコルに準拠する必要があります。

UIPageViewControllerDelegate に準拠デリゲートオブジェクトオブジェクトは、いくつかの外観に関連する情報を提供するプロトコルおよびジェスチャ開始遷移に関する通知を受信します。

setViewControllers([<#Your ViewControllers#>], direction: .forward, animated: true, completion: nil) 

詳細

Apple Docs

Stackoverflow

+0

これはとても役に立ちます!これを正しく理解しているかどうかを確認できますか?ページにジャンプし、データソースオブジェクトを使用してジェスチャーナビゲーションをサポートする必要があるときに、viewControllersに一度に1〜2回は提供できますか? – swiftlycoderr

+0

yup .. setViewControllerers:direction:animated:完了は可視のビューコントローラを設定します –

+0

このhttps://developer.appleを参照してください。com/documentation/uikit/uipageviewcontroller –

関連する問題