私のアプリではUIPageViewControllerTransitionStylePageCurl
トランジションスタイルとUIPageViewControllerSpineLocationMid
スピンロケーションのUIPageViewController
(PVC)を使用します。 PVCは一度に2ページを表示します。最後のページをスクロールするとUIPageViewControllerがクラッシュする
最後のページをスクロールしようとすると、まれなクラッシュが発生します。ログは言う:
が原因、理由キャッチされない例外 「NSInvalidArgumentException」にアプリを終了:「ビューコントローラの数 提供(0)必要な数と一致しない(2)要求された の移行のための」 。
私は間違ったことをして、Appleデモプロジェクト(https://developer.apple.com/library/ios/samplecode/ZoomingPDFViewer/Introduction/Intro.html)で遊んだかったと思っていました。
また、クラッシュも発生しました。再現するのは難しいですが、通常のスクロール軸(垂直方向)に対してほぼ垂直にスクロールする必要があります。 私の推測では、dataSource
のメソッドが間違った順序で呼び出され、PVCの整合性が損なわれているということです。 は私が呼び出しのこの順序を得た:
2016-08-19 15:03:52.905 ZoomingPDFViewer[7469:1878917] next controller: nil
2016-08-19 15:03:53.358 ZoomingPDFViewer[7469:1878917] prev controller: <DataViewController: 0x14dd5b990>
2016-08-19 15:03:53.358 ZoomingPDFViewer[7469:1878917] prev controller: <DataViewController: 0x14dd42a50>
2016-08-19 15:03:53.373 ZoomingPDFViewer[7469:1878917] next controller: nil
だから、PVCは一種のと同時に、前後にスクロールしたいようです。
私の質問は、この問題を回避する方法はありますか?私はdataSource
のメソッドが正しいデータを返すので(今のように)、今は考えることができません。
バウンスについてのリードをありがとう、私はそれを参照してください。また、それはメインスレッド以外のビューの操作がないことを再確認します。 –
残念ながら、これまでの運はありません。 –