I have UIPageViewController
包含 4 个视图控制器
我设置了自动更改视图控制器的计时器(转到下一个视图控制器) - 这个计时器和方法将起作用但问题是它仅适用于第一张幻灯片以及应用程序运行时和 5 秒后UIPageViewController
将显示第二张幻灯片但之后什么都不会发生!
这是我使用的代码
lazy var VCArr : [UIViewController] = {
return [self.VCInstance(name : "VC1"),
self.VCInstance(name : "VC2"),
self.VCInstance(name :"VC3"),
self.VCInstance(name :"VC4")]
}()
func changeSlide() {
print("Slide Change!")
guard let currentViewController = self.VCArr.first else { return }
guard let nextViewController = dataSource?.pageViewController( self, viewControllerAfter: currentViewController ) else { return }
setViewControllers([nextViewController], direction: .forward, animated: true, completion: nil)
}
var tTime: Timer!
override func viewDidLoad() {
super.viewDidLoad()
tTime = Timer.scheduledTimer(timeInterval: 5, target: self, selector: #selector(changeSlide), userInfo: nil, repeats: true)
}
我认为问题出在这一行
guard let currentViewController = self.VCArr.first else { return }
但我不知道如何改变这条线才能正常工作
尝试这个:
您可以通过 VCArr 的索引更改视图控制器。
var index = 0
func changeSlide() {
index + 1
if index < self.VCArr.count {
setViewControllers([VCArr[index]], direction: .forward, animated: true, completion: nil)
}
else {
index = 0
setViewControllers([VCArr[0]], direction: .forward, animated: true, completion: nil)
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)