在我的应用中,我使用UIPageViewController
(PVC)UIPageViewControllerTransitionStylePageCurl
转换样式和UIPageViewControllerSpineLocationMid
旋转位置。所以PVC一次显示两页。
当我尝试滚动浏览最后几页时,我遇到了罕见的崩溃。日志说:
由于未捕获的异常而终止应用 '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 :(得分:0)
整个“同时向两个方向滚动”的事情可能是因为弹跳效果。您是否正在对非主线程上的视图进行任何操作?
UIPageViewController是一种多样的错误(如果你做任何事情,甚至对它非常重要)。你可以在Disable bounce effect in UIPageViewController中阅读我的回答,看看你是否正在做其他问题的答案。
除此之外,我建议提交一个错误。对UIPageViewController提交错误的人越多,Apple就越有可能修复它。