2016-08-19 6 views
1

私のアプリでは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のメソッドが正しいデータを返すので(今のように)、今は考えることができません。

答えて

0

バウンス効果のため、全体的に「一度に両方向をスクロールする」ことが多分あります。非メインスレッドでのビューの操作をしていますか?

UIPageViewControllerは、遠隔操作でも何かをしていても、ちょっとバカバカです(そして私はここで親切です)。あなたはDisable bounce effect in UIPageViewControllerで私の答えを読んで、その質問に対する他の答えがやっていたことをしているかどうかを見ているかもしれません。

それ以外にも、私はバグを提出することをお勧めします。より多くの人がUIPageViewControllerに対するバグをファイルするほど、Appleはそれを修正する可能性が高くなります。

+0

バウンスについてのリードをありがとう、私はそれを参照してください。また、それはメインスレッド以外のビューの操作がないことを再確認します。 –

+0

残念ながら、これまでの運はありません。 –

関連する問題