我有一个 UIPageViewController,当我们向左或向右滑动翻页时,它工作正常。
class ViewController: UIViewController, UIPageViewControllerDataSource {
...
}
现在我打算在页面上也提供上一个/下一个按钮,这样就可以通过点击这些按钮来翻页。
如何以编程方式触发左/右滑动行为或翻页?
这是针对 Swift 语言的问题,而不是 Objective-C。
最佳答案
通常不需要摆弄页面索引等等。您可能已经在实现 dataSource: UIPageViewControllerDataSource,它具有显示上一个或下一个 ViewController 所需的所有内容。
swift 5 示例:
extension UIPageViewController {
func goToNextPage() {
guard let currentViewController = self.viewControllers?.first else { return }
guard let nextViewController = dataSource?.pageViewController( self, viewControllerAfter: currentViewController ) else { return }
setViewControllers([nextViewController], direction: .forward, animated: false, completion: nil)
}
func goToPreviousPage() {
guard let currentViewController = self.viewControllers?.first else { return }
guard let previousViewController = dataSource?.pageViewController( self, viewControllerBefore: currentViewController ) else { return }
setViewControllers([previousViewController], direction: .reverse, animated: false, completion: nil)
}
}
通过这种方式,您可以确保要转换到的页面正是 PageViewController 的 内置手势将触发的内容。
关于iOS swift : UIPageViewController - Turning page programmatically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30489920/