在 Swift 中点击页面控件时更改页面
Change Page When Tapping on Pagecontrol in Swift
我知道这个问题之前已经在这里得到了回答,但我无法使用 Swift 找到答案。目前我在容器视图中嵌入了一个页面viewcontroller。容器视图与页面控件位于同一 viewcontroller 内。我正在使用委托来让页面控件在来回翻页时发生变化,但目前页面在点击页面控件点时不会发生变化。我如何在 Swift 中执行此操作?
我在这里找到的答案回答了问题,但没有页面viewcontroller。
我的情况与 link 中提供的答案不同。我在容器视图中有一个 viewpagecontroller 并遵循 this tutorial and the second one 那里有对页面控件的解释。
所以我去了容器视图的父 viewcontroller 并创建了一个全局变量:
var pagerController: MainPageViewController!
然后使用:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if (segue.identifier == "PagerContainerSegue") {
//This is used to reference the paging left and right functions
let childViewController = segue.destination as! MainPageViewController
pagerController = childViewController
}
}
然后我在值更改时为页面控件添加了一个出口:
@IBAction func pageControlValueChange(_ sender: AnyObject) {
//setViewControllers comes from the pageviewcontroller
if(pageIndex == 0){
pagerController.setViewControllers([orderedViewControllers[1]],
direction: .forward,
animated: true,
completion: nil)
pageIndex += 1
}else{
pagerController.setViewControllers([orderedViewControllers[0]],
direction: .reverse,
animated: true,
completion: nil)
pageIndex -= 1
}
}
此处分配的 pageIndex:
func mainPageViewController(_ mainPageViewController: MainPageViewController,
didUpdatePageIndex index: Int) {
pageIndex = index
pageControl.currentPage = index
}
我知道这个问题之前已经在这里得到了回答,但我无法使用 Swift 找到答案。目前我在容器视图中嵌入了一个页面viewcontroller。容器视图与页面控件位于同一 viewcontroller 内。我正在使用委托来让页面控件在来回翻页时发生变化,但目前页面在点击页面控件点时不会发生变化。我如何在 Swift 中执行此操作?
我在这里找到的答案回答了问题,但没有页面viewcontroller。
我的情况与 link 中提供的答案不同。我在容器视图中有一个 viewpagecontroller 并遵循 this tutorial and the second one 那里有对页面控件的解释。
所以我去了容器视图的父 viewcontroller 并创建了一个全局变量:
var pagerController: MainPageViewController!
然后使用:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if (segue.identifier == "PagerContainerSegue") {
//This is used to reference the paging left and right functions
let childViewController = segue.destination as! MainPageViewController
pagerController = childViewController
}
}
然后我在值更改时为页面控件添加了一个出口:
@IBAction func pageControlValueChange(_ sender: AnyObject) {
//setViewControllers comes from the pageviewcontroller
if(pageIndex == 0){
pagerController.setViewControllers([orderedViewControllers[1]],
direction: .forward,
animated: true,
completion: nil)
pageIndex += 1
}else{
pagerController.setViewControllers([orderedViewControllers[0]],
direction: .reverse,
animated: true,
completion: nil)
pageIndex -= 1
}
}
此处分配的 pageIndex:
func mainPageViewController(_ mainPageViewController: MainPageViewController,
didUpdatePageIndex index: Int) {
pageIndex = index
pageControl.currentPage = index
}