14

我找不到让 UIPageViewController 预加载周围 ViewControllers 的好的解决方案。

现在发生的事情是当用户开始翻页时,什么也没有发生,代码调用

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController
       viewControllerAfterViewController:(UIViewController *)viewController

并且一旦加载然后它就会显示动画。这需要太长时间并且不顺利。

有人有解决方案吗?

4

1 回答 1

20

创建一个可变容器,当你显示第一个视图时,创建两个 viewController,如果用户页面,一旦你有 viewController 对象询问它的​​视图(让它加载 nib 并调用控制器的“viewDidLoad” :" 方法。您需要找出一个识别 viewControlers 的系统,以便您可以检索所需的 viewController)。您可能可以在 dispatch_queue 的一个块中完成繁重的工作。

从那时起,当用户页面时,你首先在容器中查找viewController,如果没有找到,你必须实时进行。

您可能想要使用 dispatch_group 以便您可以等待待处理的块在分页之前完成。

每次用户页面时,您都会查看该页面周围的页面是否在容器中。您还可以预取更多的视图控制器——比如在显示的每个页面上两个前向两个反向。

于 2012-07-25T22:47:15.513 回答