【问题标题】:How to display a UIPageViewController that has no data?如何显示没有数据的 UIPageViewController?
【发布时间】: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 页面视图控制器。我猜在没有数据的情况下你的初始创建逻辑有问题。
  • 实际上,我应该提到初始屏幕显示得很好(带有空白视图)——尽管当没有照片时我没有做任何特别的事情。但是,当您尝试向左或向右滑动时,它会崩溃。我已经单步执行了代码,但还不知道哪里出了问题。
  • 如果它崩溃了,那么你的委托方法不正确。您根本没有显示任何代码,因此您的问题毫无意义,因为没有人可以提供帮助。

标签: ios uipageviewcontroller


【解决方案1】:

@matt 是正确的:问题是没有设置初始页面控制器,这导致了崩溃。创建一个虚拟视图控制器就可以了:

[self.storyboard instantiateViewControllerWithIdentifier:@"NoPhotosViewController"];

【讨论】:

    【解决方案2】:

    如果你的滚动样式是 UIPageViewControllerTransitionStyleScroll,那么this你的答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-09
      • 1970-01-01
      • 2019-02-21
      • 2017-02-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多