我找不到让UIPageViewController预加载周围ViewControllers的好方法。
现在发生的事情是,当用户开始翻页时,没有任何反应,代码调用
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController
viewControllerAfterViewController:(UIViewController *)viewController
然后加载后再显示动画。这需要太长时间并且不顺畅。
任何人都有解决方案吗?
答案 0 :(得分:18)
创建一个可变容器,当你显示第一个视图时,创建两个viewController,如果用户页面需要它,一旦你有viewController对象询问它的视图(让它加载nib并调用controller的“viewDidLoad:”方法。你需要弄清楚一个识别viewControlers的系统,这样你就可以检索你需要的viewController。您可以在dispatch_queue的块中执行繁重的工作。
从那时起,当用户页面时,您首先在容器中查看viewController,如果找不到,则必须实时进行。
您可能希望使用dispatch_group,以便在分页之前等待挂起块完成。
每次用户页面时,您都会查看该页面周围的页面是否在容器中。您还可以预先获取更多的viewControllers - 就像显示的每个页面上的两个前向两个反向一样。