1. ホーム
  2. iphone

[解決済み] UIPageViewController: 現在表示されているビューを返す

2023-02-22 07:53:56

質問

の中に表示されている現在のページ/ビューが何であるかを知るにはどうしたらよいのでしょうか? UIPageViewController ?

をオーバーライドしました。 viewDidAppear メソッドをオーバーライドし、親ビューに ID を送信するようにしました。 viewDidAppear メソッドで親ビューに id を送るようにします。

しかし、問題はこれです。表示されているページのIDとして、そのIDを確実に使用することができません。なぜなら、もしユーザーがページをめくり、途中でめくるのをやめてページを戻すことにした場合。 viewDidAppear はすでに呼び出されているからです。(ビューはカールしたページの後ろに見えています)。

たぶん、現在のビューが消えた場合のみ、新しいidに切り替えるべきでしょう。しかし、現在表示されているビューを返す、もっと簡単な方法はないのでしょうか?

どのように解決するのですか?

手動で現在のページを記録しておく必要があります。

デリゲートメソッドである pageViewController:didFinishAnimating:previousViewControllers:transitionCompleted: はその変数をいつ更新するかを教えてくれます。メソッドの最後の引数 transitionCompleted: は、ユーザーがページターン遷移を完了したかどうかを知ることができます。

そして、現在表示されているView Controllerを取得するには、次のようにします。

self.viewControllers?.first