Мое положение было отличным от ответов, приведенных в ссылке. У меня был viewpagecontroller в представлении контейнера и последовали this учебник и second one, где есть объяснение, данное для управления страницей.
Так что я пошел к родительскому ViewController с точки зрения контейнера и создал глобальную переменную:
вар 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
}
}
Затем я добавил выход для PageControl, когда значение изменилось:
@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
}
Вот несколько ответы с использованием пакета: http://stackoverflow.com/questions/13854222/how-can-i -change-the-page-on-click-the-dots-of-uipagecontrol – Putz1103
Эти ответы включают использование коллекции. Я использую диспетчер просмотра страницы. – user1715916
Цитата из этих ответов: «Нажатие точек« UIPageControl »перемещает ваше текущее представление влево или вправо». – Putz1103