【发布时间】:2019-04-25 10:28:45
【问题描述】:
我正在使用UIPageViewController,我的目的是在点击UIButton 时切换其UIViewController 之一的当前视图。我已经用谷歌搜索了我的问题并找到了一些类似的主题,但我无法确定答案。
例如,我的第二个UIViewController vc2 中的按钮应将视图更改为vc3。
RootPageViewController
import UIKit
class RootPageViewController: UIPageViewController, UIPageViewControllerDataSource {
lazy var viewControllerList:[UIViewController] = {
let sb = UIStoryboard(name: "Main", bundle: nil)
let vc1 = sb.instantiateViewController(withIdentifier: "timelineView")
let vc2 = sb.instantiateViewController(withIdentifier: "mainView")
let vc3 = sb.instantiateViewController(withIdentifier: "addView")
return [vc1, vc2, vc3]
}()
override func viewDidLoad() {
super.viewDidLoad()
self.dataSource = self
let secondViewController = viewControllerList[1]
self.setViewControllers([secondViewController], direction: .forward, animated: false, completion: nil)
}
func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {
guard let vcIndex = viewControllerList.firstIndex(of: viewController) else { return nil }
let previousIndex = vcIndex - 1
guard previousIndex >= 0 else { return nil }
guard viewControllerList.count > previousIndex else { return nil }
return viewControllerList[previousIndex]
}
func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
guard let vcIndex = viewControllerList.firstIndex(of: viewController) else { return nil }
let nextIndex = vcIndex + 1
guard viewControllerList.count != nextIndex else { return nil }
guard viewControllerList.count > nextIndex else { return nil }
return viewControllerList[nextIndex]
}
}
第二个 ViewController 内的按钮
@IBAction func addData(_ sender: Any) {
}
【问题讨论】:
-
可以设置通知器吗?
-
@RaviPadsala 对不起,我是 Swift 新手。您能否在下面的答案中说明您的答案?
-
您可以在单击按钮时更改同一类中的页面控制器位置?
标签: ios swift uipageviewcontroller