gpt4 book ai didi

ios - 如何从属于 UIPageViewController 的 UIViewController 之一中更改 UIPageViewController?

转载 作者:可可西里 更新时间:2023-11-01 01:28:05 26 4
gpt4 key购买 nike

几个小时以来,我一直在努力解决这个问题,我一定是误解了 UIPageViewController 的工作原理。

我有 5 个设置屏幕(加载到 UIPageViewController 中的独立 View Controller ),我可以左右滑动查看。

但是!我希望能够在他们解除其中一个 View Controller 上的警报后以编程方式显示下一个 View Controller 。

到目前为止,我发现唯一接近的解决方案是这里的解决方案 (https://github.com/jeffaburt/UIPageViewController-Post),它允许“下一步”按钮,但该按钮不在 View Controller 上显示,它位于包含 UIPageViewController 的 Root View Controller 上。

我使用这段代码将 UIPageViewController 设置为显示 5 个不同的 View Controller 。

private(set) lazy var orderedViewControllers: [UIViewController] = {
return [self.newColoredViewController("setup1"),
self.newColoredViewController("setup2"),
self.newColoredViewController("setup3"),
self.newColoredViewController("setup4"),
self.newColoredViewController("setup5")]
}()

然后 newColoredViewController 函数执行此操作:

private func newColoredViewController(color: String) -> UIViewController {
return UIStoryboard(name: "Main", bundle: nil) .
instantiateViewControllerWithIdentifier("\(color)")
}

这是我的viewDidLoad:

 override func viewDidLoad() {
super.viewDidLoad()

dataSource = self



if let SetupViewController = orderedViewControllers.first {
setViewControllers([SetupViewController],
direction: .Forward,
animated: true,
completion: nil)
}


}

我一定是缺少一些基本的理解,因为我已经尝试了很多不同的方法来以编程方式更改页面,但没有任何反应。

我试过这样做,但没有任何效果:

setViewControllers([orderedViewControllers[3]],
direction: .Forward,
animated: true,
completion: nil)

我试过这样做,但没有任何效果:

func scrollToNextViewController() {
if let visibleViewController = viewControllers?.first,
let nextViewController = pageViewController(self,
viewControllerAfterViewController: visibleViewController) {
scrollToViewController(nextViewController)
}
}

请指点我正确的方向!!我可以研究一整天,并且通常可以解决问题,这要归功于之前已经回答的 stackoverflow 问题,但在这里我很困惑。

提前致谢!

最佳答案

我想出了一个更简单的方法来在我已经设置的结构中完成它。在 UIPageViewController 中,添加了这个函数:

func nextPageWithIndex(index: Int)
{
// let nextWalkthroughVC = newColoredViewController("setup4")
let nextWalkthroughVC = orderedViewControllers[index]
setViewControllers([nextWalkthroughVC], direction: .Forward, animated: true, completion: nil)

}

然后在其中一个设置 View Controller 中,我创建了一个运行此代码的按钮操作:

@IBAction func yeaaa(sender: AnyObject) {
let parent = self.parentViewController as! SetupViewController

parent.nextPageWithIndex(3)
}

(其中“SetupViewController”是 UIPageViewController)

YEEHAWWWW 快把我逼疯了。

这是让我想到“self.parentViewController as!SetupViewController”和“nextPageWithIndex”代码的视频:https://www.youtube.com/watch?v=K3CSBxX5VXA

关于ios - 如何从属于 UIPageViewController 的 UIViewController 之一中更改 UIPageViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40427327/

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