我正在使用 Xcode 8 的默认基于页面的应用程序,并且我一直在尝试跳转到特定页面(而不是左右滑动来转动)。我在 StackOverflow 上发现了类似的问题,但答案大多建议使用这种方法:
setViewControllers:direction:animated:completion
我不需要更改要显示的页数,所以我可以避免使用setViewControllers
?
在阅读了 Xcode 的基于页面的应用程序模板后,我认为这个功能可能有效:
func viewControllerAtIndex(_ index: Int, storyboard: UIStoryboard) -> DataViewController?
但是不知道从哪里获取参数storyboard: UIStoryboard
,因为 ModelController(充当 UIPageViewControllerDataSource 的控制器)不是故事板的一部分。
传递给此方法的视图控制器是动画完成后可见的视图控制器。使用数据源提供用户导航到的附加视图控制器。
定义页面视图控制器接口时,您可以一次提供一个内容视图控制器(或一次两个,具体取决于书脊位置和双面状态)或根据需要使用数据源。当一次提供一个内容视图控制器时,您可以使用setViewControllers(_:direction:animated:completion:)
设置当前内容视图控制器的方法。要支持基于手势的导航,您必须使用数据源对象提供视图控制器。
页面视图控制器的数据源负责按需提供内容视图控制器,并且必须符合UIPageViewControllerDataSource
协议。
委托对象——符合以下条件的对象UIPageViewControllerDelegate
协议—提供一些与外观相关的信息并接收有关手势启动的转换的通知。
setViewControllers([<#Your ViewControllers#>], direction: .forward, animated: true, completion: nil)
更多信息
苹果文档 https://developer.apple.com/documentation/uikit/uipageviewcontroller/1614087-setviewcontrollers?language=objc
堆栈溢出 https://stackoverflow.com/a/17559518/5461400
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)