Вы можете передать ссылку вашего PageViewController
на ваши контроллеры вспомогательного представления, чтобы вы могли вызвать метод вашего PageViewController
с контроллеров вспомогательного представления.Например, создайте
var pageViewController : PageViewController?
в ViewController4
, затем назначьте его в subViewControllers
lazy var subViewControllers:[UIViewController] = {
let viewController4 = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ViewController4") as! ViewController4
viewController4.pageViewController = self
return [
UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ViewController1") as! ViewController1,
UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ViewController2") as! ViewController2,
UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ViewController3") as! ViewController3,
viewController4,
UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ViewController5") as! ViewController5,
]
}()
Затем можно вызвать любой метод PageViewController
из ViewController4
.Для простоты вы можете создать метод scrollToViewController3()
в PageViewController
func scrollToViewController3()
{
setViewControllers([subViewControllers[2]], direction: .reverse, animated: true, completion: nil)
}
и вызвать pageViewController?.scrollToViewController3()
в ViewController4