iOS 页面视图控制器与容器视图控制器详解
1. 页面视图控制器基础
页面视图控制器(Page View Controller)是 UIViewController
的一种,其视图需通过标准方式加入界面。可将其设为窗口的根视图控制器,也能将其作为展示视图控制器,或者作为标签栏控制器或导航控制器的子视图控制器。若要将页面视图控制器的视图作为自定义视图控制器视图的子视图,该自定义视图控制器必须是自定义容器视图控制器。
1.1 页面视图控制器导航
当页面视图控制器的视图加入界面后,虽理论上有多个页面,但它起初仅知晓一个页面。导航时,会调用以下数据源方法:
- pageViewController(_:viewControllerAfter:)
- pageViewController(_:viewControllerBefore:)
这些方法的作用是返回请求的连续视图控制器,若没有则返回 nil
。以下是示例代码:
let pep : [String] = ["Manny", "Moe", "Jack"]
func pageViewController(_ pvc: UIPageViewController,
viewControllerAfter vc: UIViewController) -> UIViewController? {
let boy = (vc as! Pep).boy
let