gpt4 book ai didi

swift - 我如何从嵌入在 UITableViewCell (Swift) 中的 UICollectionView 的单元格中分离出来?

转载 作者:行者123 更新时间:2023-11-28 09:37:04 25 4
gpt4 key购买 nike

我用过this tutorial成功地将 UICollectionView 嵌入到我的 ViewController 中的 UITableView 中。

如果您快速查看链接教程的代码(加上它也是一件很棒的东西要学习!),以下内容可能会更有意义:

我的下一步是从 tableView 的 UITableViewCell 中的 UICollectionView 的单元格执行 segue,但是因为 collectionView outlet 建立在一个单独的View Controller,我不确定如何在主 ViewController 中引用它。

在 TableViewCell.swift 中有:

class TableViewCell: UITableViewCell {
@IBOutlet private weak var collectionView: UICollectionView!
}

extension TableViewCell {
func setCollectionViewDataSourceDelegate<D: protocol<UICollectionViewDataSource, UICollectionViewDelegate>>(dataSourceDelegate: D, forRow row: Int) {
collectionView.delegate = dataSourceDelegate
collectionView.dataSource = dataSourceDelegate
collectionView.tag = row
collectionView.reloadData()
}
}

在 ViewController.swift 中,我需要能够调用 prepareForSegue 函数中的 TableViewCell 中的 collectionView ViewController.swift 文件。我只需要用 collectionView 导出填补空白:

let destination = segue.destinationViewController as! SecondViewController
let indexPaths = self.___________.indexPathsForSelectedItems()
let indexPath = indexPaths![0] as NSIndexPath
let arrayObject = self.arrayObjects[indexPath.row]
destination.object = arrayObject

'object' 是在 SecondViewController 中实现的,var object: PFObject!

我现在需要用 collectionView 填补上面代码中的空白,________,以便在 SecondViewController(destinationViewController)中显示正确的“对象”

最佳答案

  1. 将 Push Segue 从 UICollectionViewCell 添加到来自 IB 的 YourViewController
  2. 为您的 segue 提供标识符(“YourSegueIdentifier”)。
  3. 在您的自定义 UITableViewController 或 UIViewController 中,覆盖 prepareForSegue() 方法。

这是:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "YourSegueIdentifier" {
if let collectionCell: YourCollectionViewCell = sender as? YourCollectionViewCell {
if let collectionView: UICollectionView = collectionCell.superview as? UICollectionView {
if let destination = segue.destination as? YourViewController {
// Pass some data to YourViewController
// collectionView.tag will give your selected tableView index
destination.someObject = tableObjects[collectionView.tag].someObject
destination.productId = collectionCell.product?.id
}
}
}
}
}

关于swift - 我如何从嵌入在 UITableViewCell (Swift) 中的 UICollectionView 的单元格中分离出来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34486465/

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