如何使用UIPageViewController跳转到特定页面?

时间:2017-07-14 05:47:54

标签: ios swift uikit

我正在使用Xcode 8默认的基于页面的应用程序,而我却试图跳转到特定页面(而不是向左和向右滑动)。我在StackOverflow上发现了类似的问题,但答案大多建议使用这种方法:

 setViewControllers:direction:animated:completion

我无需更改要显示的页数,因此可以避免使用setViewControllers吗?

在阅读Xcode的基于页面的应用程序模板后,我认为这个功能可能有效:

func viewControllerAtIndex(_ index: Int, storyboard: UIStoryboard) -> DataViewController?

但是,我不知道从哪里获取参数storyboard: UIStoryboard,因为ModelController(充当UIPageViewControllerDataSource的控制器)不是故事板的一部分。

1 个答案:

答案 0 :(得分:3)

传递给此方法的视图控制器是在动画完成后可见的视图控制器。使用数据源提供用户导航的其他视图控制器。

定义页面视图控制器界面时,您可以一次提供一个内容视图控制器(或一次两个,具体取决于脊椎位置和双侧状态)或使用数据源按需提供。当一次提供一个内容视图控制器时,您使用 setViewControllers(_:direction:animated:completion:)  设置当前内容视图控制器的方法。要支持基于手势的导航,必须使用数据源对象提供视图控制器。

页面视图控制器的数据源负责按需提供内容视图控制器,并且必须符合 UIPageViewControllerDataSource 协议。

委托对象 - 符合的对象 UIPageViewControllerDelegate  协议 - 提供一些与外观相关的信息,并接收有关手势启动的转换的通知。

setViewControllers([<#Your ViewControllers#>], direction: .forward, animated: true, completion: nil)

更多信息

Apple Docs

Stackoverflow