gpt4 book ai didi

ios - 如何使用 uiviewcontroller/storyboard 上的 uibutton 在 uipageviewcontroller 中推进页面

转载 作者:行者123 更新时间:2023-11-29 00:34:40 27 4
gpt4 key购买 nike

我有一个非常具体的用例,我想知道是否有人处理过。我想在我的第一次用户体验 UIPageViewController 上添加一个“继续”按钮。如果您希望它出现在每个页面上,这篇文章( Swift iOS: how to trigger next page using buttons )会有所涉及,但我不打算广泛使用。

我有一个 UIPageViewController 和 6 个 View Controller ,我目前可以通过滑动来导航。

我尝试将按钮作为 segue 连接到 View Controller ,但这将其呈现在 PageViewController 之外。我曾想过尝试将从右向左的滑动推到按钮点击上,但我无法放弃解决这个问题。

有人知道如何攻击将单个按钮放在其中一个 View Controller 上,并让它进入 UIPageViewController 中的下一个 View Controller 吗?


这已被标记为重复,但 SO 上没有此问题的重复案例。很少有类似的,但没有类似的。有的话麻烦给个链接。当前链接的版本是对类似问题的 obj-c 答案,没有解释如何将所需功能链接到 View Controller 。我可以轻松地将这个答案实现为全局按钮,但它不涵盖单个 View Controller 按钮。

谢谢


编辑最终代码解决方案。

所以这是一个用 swift 3 编码的两部分解决方案。

在uipageviewcontroller数据源扩展中,翻转页面的函数构建如下。

func goNextPage() {
let cur = self.viewControllers![0]
let p = self.pageViewController(self, viewControllerAfter: cur)
self.setViewControllers([p!], direction .forward, animated: true, completion: nil)
}

单个 View Controller 中的部分构建如下

@IBAction func nextPageButtonWasTapped(_ sender: Any) {
var candidate: UIViewController = self
while true {
if let pageViewController = candidate as? MyUIPageViewController {
pageViewController.goNextPage()
break
}
guard let next = parent else { break }
candidate = next
}
}

最佳答案

在 View Controller 层次结构中向上查找页面 View Controller 。当你找到它时,让它翻页:

@IBAction func nextPageButtonWasTapped(_ sender: AnyObject?) {
var candidate: UIViewController = self
while true {
if let pageViewController = candidate as? UIPageViewController {
candidate.navigateForward()
break
}
guard let next = parentViewController else { break }
candidate = next
}
}

UIPageViewController 的扩展中实现 navigateForward,基于来自 this answer 的 Objective-C 版本.

关于ios - 如何使用 uiviewcontroller/storyboard 上的 uibutton 在 uipageviewcontroller 中推进页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40899890/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com