У меня есть UIPageViewController, который содержит 3 UIViewController. Я могу установить их как источник данных и переключаться между ними с помощью прокрутки, но я хочу иметь возможность переключаться между ними с помощью кнопок, которые находятся внутри UIViewControllers.
Вот изображение раскадровки:
![image](https://i.ibb.co/85BdChc/storeyboard.png)
Когда я нажимаю на кнопку «Начать день», запускается следующий код:
func startDay() {
print("Start Day")
viewController.setViewControllers([orderedViewControllers[1]], direction: .forward, animated: true, completion: nil)
}
Вот код контроллера просмотра домашней страницы:
import UIKit
class HomePageViewController: UIPageViewController {
@IBOutlet var viewController: UIPageViewController!
lazy var orderedViewControllers: [UIViewController] = {
return [self.newVc(vc: "StartDayViewController"),
self.newVc(vc: "StartContactViewController"),
self.newVc(vc: "StopContactViewController")]
}()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
//dataSource = self
//delegate = self
print("Home Page View Controller Load")
if let firstViewController = orderedViewControllers.first {
setViewControllers([firstViewController],
direction: .forward,
animated: true,
completion: nil)
}
}
//MARK: - Functions
func newVc(vc: String) -> UIViewController {
return UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: vc)
}
func startDay() {
print("Start Day")
viewController.setViewControllers([orderedViewControllers[1]], direction: .forward, animated: true, completion: nil)
}
}
Затем контроллер домашней страницы, VC1 и VC2 загружаются и появляются, но отображаемый ViewController остается VC1.
Я бы хотел, чтобы он изменился на VC2, а не перезагружался и снова появлялся контроллер просмотра домашней страницы и VC1. Что я делаю не так?