预加载UIPageViewController的页面

时间:2012-07-25 22:26:38

标签: iphone ios uipageviewcontroller

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

现在发生的事情是,当用户开始翻页时,没有任何反应,代码调用

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

然后加载后再显示动画。这需要太长时间并且不顺畅。

任何人都有解决方案吗?

1 个答案:

答案 0 :(得分:18)

创建一个可变容器,当你显示第一个视图时,创建两个viewController,如果用户页面需要它,一旦你有viewController对象询问它的​​视图(让它加载nib并调用controller的“viewDidLoad:”方法。你需要弄清楚一个识别viewControlers的系统,这样你就可以检索你需要的viewController。您可以在dispatch_queue的块中执行繁重的工作。

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

您可能希望使用dispatch_group,以便在分页之前等待挂起块完成。

每次用户页面时,您都会查看该页面周围的页面是否在容器中。您还可以预先获取更多的viewControllers - 就像显示的每个页面上的两个前向两个反向一样。