我正在使用Xcode 8默认的基于页面的应用程序,而我却试图跳转到特定页面(而不是向左和向右滑动)。我在StackOverflow上发现了类似的问题,但答案大多建议使用这种方法:
setViewControllers:direction:animated:completion
我无需更改要显示的页数,因此可以避免使用setViewControllers
吗?
在阅读Xcode的基于页面的应用程序模板后,我认为这个功能可能有效:
func viewControllerAtIndex(_ index: Int, storyboard: UIStoryboard) -> DataViewController?
但是,我不知道从哪里获取参数storyboard: UIStoryboard
,因为ModelController(充当UIPageViewControllerDataSource的控制器)不是故事板的一部分。
答案 0 :(得分:3)
传递给此方法的视图控制器是在动画完成后可见的视图控制器。使用数据源提供用户导航的其他视图控制器。
定义页面视图控制器界面时,您可以一次提供一个内容视图控制器(或一次两个,具体取决于脊椎位置和双侧状态)或使用数据源按需提供。当一次提供一个内容视图控制器时,您使用
setViewControllers(_:direction:animated:completion:)
设置当前内容视图控制器的方法。要支持基于手势的导航,必须使用数据源对象提供视图控制器。
页面视图控制器的数据源负责按需提供内容视图控制器,并且必须符合
UIPageViewControllerDataSource
协议。
委托对象 - 符合的对象
UIPageViewControllerDelegate
协议 - 提供一些与外观相关的信息,并接收有关手势启动的转换的通知。
setViewControllers([<#Your ViewControllers#>], direction: .forward, animated: true, completion: nil)
更多信息