1. UIPageViewController就是一个父的viewController,在翻页过程中需要不断的对子viewController进行初始化操作。
2. UIPageViewController的整体框架。
一个基本的ViewController,作为PageViewController的代理(delegate),同时设置dataSource为self。在最开始加载的过程中需要先整理需要显示的数据,可以用NSArray进行存储,这个数组里的每个字符串对应的就是每页中要显示的内容。
这个基本的ViewController需要有一个属性UIPageViewController,在加载过程中首先对这个属性进行初始化,如下图,
在初始化过程中需要设置翻页的方式,是左右翻还是上下翻,以及一些必要的参数,同时还需要设置这个pageViewController的view框架(即为在页面的哪个位置显示翻页)。
同时在初始加载viewDidLoad中还需要对第一页的数据进行初始化操作,如下图:
在这个过程中需要初始化第一页对应的viewController,然后将其赋值给 PageViewController的自带属性viewControllers。这样pageViewController就初始化完成,接着就是将这个pageViewController添加到当前的view中。这样就初始化完成
初始化完成后,就行翻页就需要用到UIPageViewController的dataSource 协议方法(即这个基础的ViewController需要实现 UIPageViewControllerDataSource协议)。这个协议中包括连个必要方法
viewControllerBeforeViewController 和 viewControllerAfterViewController。在这两个方法中就是初始化和生成制定下一页的viewController(包括填充对应的数据)参考如下图:
在上边两个方法中会调用工具方法,如下图,这是一种标准实现(初始化页面viewController)
到此,这个基础的viewController就开发完成,然后就是 具体对应于每个页面的viewController现实代码。
在每个页面对应的ViewController中就需要设置现实的数据,如在viewWillAppear中设置如下例子:
这样在每个页面加载的时候,这个viewController就会去加载不同的数据。