【发布时间】:2015-04-19 23:58:20
【问题描述】:
我正在使用 UIPageViewController 作为在照片库中浏览照片的一种方式。当照片存在时它可以工作,但如果手机上不存在照片,它会崩溃。错误:
2015-04-19 16:27:05.305 MyApp[2566:1278254] *** Assertion failure in -[MyPageViewController queuingScrollView:didBailoutOfScrollAndRevealedView:], /SourceCache/UIKit/UIKit-3347.44/UIPageViewController.m:1903
2015-04-19 16:27:05.308 MyApp[2566:1278254] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'No view controller managing visible view (null)'
当不存在照片时,数据源委托方法确实返回 nil,所以我原以为页面视图控制器不会显示任何内容。显然,这是不正确的。
当当前没有数据显示在 UIPageViewController 中时,处理这种情况的正确方法是什么?制作一个虚拟的页面内容视图控制器并将其交给页面视图控制器,以便它可以显示一些内容?
【问题讨论】:
-
如果 no 照片存在,那么委托方法不是问题:问题是 UIPageViewController 的 initial 创建,它必须是填充了 initial 页面视图控制器。我猜在没有数据的情况下你的初始创建逻辑有问题。
-
实际上,我应该提到初始屏幕显示得很好(带有空白视图)——尽管当没有照片时我没有做任何特别的事情。但是,当您尝试向左或向右滑动时,它会崩溃。我已经单步执行了代码,但还不知道哪里出了问题。
-
如果它崩溃了,那么你的委托方法不正确。您根本没有显示任何代码,因此您的问题毫无意义,因为没有人可以提供帮助。