我想實現類似PageMenu的東西。目前,我有一個內部有2個容器的根視圖控制器,名爲headerViewController和containerViewController。 我已經設置了一切,但我不知道如何同步這兩個視圖控制器之間的行爲。如何在視圖控制器之間同步索引
- 如何將我的索引從UICollectionViewController發送到UIPageViewController?
- 當UIPageViewController做滾動時,如何更改UICollectionViewController中的索引?
RootViewController的
var headerViewController: PageMenuViewController?
var containerViewController: PageViewController?
override func awakeFromNib() {
pages = [Pages(name: "Page1", selected: true, url: photo1), Pages(name: "Page2", url: video1)]
}
override func viewDidLoad() {
super.viewDidLoad()
}
// MARK: Navigation
override func prepare(for segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "rootViewSegue" {
containerViewController = segue.destination as? PageViewController
containerViewController!.controllerArray = pages
} else if segue.identifier == "headerViewSegue" {
headerViewController = segue.destination as? PageMenuViewController
headerViewController!.dataArray = pages
}
}
containerViewController(UIPageViewController)
func jumpToPage(_ index: Int) {
if index < orderedViewControllers.count {
setViewControllers([orderedViewControllers[index]], direction: .forward, animated: true, completion: nil)
}
}
headerViewController(UICollectionViewController)
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
// Sync index with containerViewController
// How to use jumpToPage ??
}
是一個例子將是一件好事對於其他可能需要此解決方案的人 –