我有一个
UIPageViewController,其中包含从通过网络获取的数据实例化的视图控制器.当用户正在分页并进入最后几页时,我启动了一个新的网络操作,并将生成的新视图控制器放在我的UIPageViewControllerDataSource的可变视图控制器数组的末尾.总的来说这一切都很好.
但是,如果网络速度很慢(或用户速度很快),则可以在网络操作完成之前到达最终页面.由于当用户到达最后一页时调用pageViewController:viewControllerAfterViewController:,它已经返回nil(“表示没有下一个视图控制器”).
是否有一种强制UIPageViewController调用pageViewController的好方法:viewControllerAfterViewController:再次(这样当网络操作完成并且现在有新页面时,我可以强制进行此调用以便用户可以寻呼到新页面)?或者是否有解决方法(可能阻止用户分页到最后一页,但仍然显示反弹动画)?
解决方法
见:
Refresh UIPageViewController – reorder pages and add new pages
当您从网络获取数据时,请调用setViewControllers:direction:animated:completion:并再次将当前视图设置为当前视图.这迫使它重新调用pageViewController:viewControllerAfterViewController: