gpt4 book ai didi

ios - 如何在 View Controller 之间同步索引

转载 作者:可可西里 更新时间:2023-11-01 02:15:32 26 4
gpt4 key购买 nike

我想实现类似 PageMenu 的东西.目前,我有一个 Root View Controller ,里面有 2 个容器,名为 headerViewControllercontainerViewControllerenter image description here我已经设置好一切,但我不知道如何同步这两个 View Controller 之间的行为。

- 如何将我的索引从 UICollectionViewController 发送到 UIPageViewController?

- 当 UIPageViewController 滚动时,如何更改 UICollectionViewController 中的索引?

Root View Controller

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 ??
}

enter image description here

最佳答案

您可以使用委托(delegate)模式,rootViewController 将实现协议(protocol) containerViewControllerDelegateheaderViewControllerDelegate,因此您可以通过这些委托(delegate)传递数据。

如果您需要示例,请告诉我。

关于ios - 如何在 View Controller 之间同步索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38951893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com