jjzjj

iOS swift : UIPageViewController - Turning page programmatically

coder 2023-07-14 原文

我有一个 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/

有关iOS swift : UIPageViewController - Turning page programmatically的更多相关文章

随机推荐