gpt4 book ai didi

swift - 使用 UITableViewCell 从 UICollectionView 推送 TableViewController

转载 作者:行者123 更新时间:2023-11-28 10:54:55 25 4
gpt4 key购买 nike

所以我试图从嵌入在 Collection View 单元格中的 UITableViewCell 推送 UITableViewController。

所以结构是UICollectionView > UICollectionViewCell > UITableView > UITableViewCell。

我想在 TableViewCell 被点击时调用 segue 吗?

我该怎么做,因为您无法访问 perform segue for identifier 函数?

最佳答案

您可以为此创建一个 protocol 并在您拥有 collectionView 的 ViewController 中实现它,然后在您的 collectionViewCell 中创建该协议(protocol)的实例属性 并在 cellForItemAt 方法中设置该属性。现在在 tableViewdidSelectRowAt 方法中调用委托(delegate)方法,其中包含要传递给 segue 的详细信息。

protocol PassData {
func performSegue(with data: String) //Set argument type to Type that you want pass instead of String
}

现在使用您的 ViewController 实现此 PassData 协议(protocol),并在 cellForItemAt 中设置 UICollectionViewCell 的委托(delegate)。

class ViewController: UIViewController, PassData, UICollectionViewDelegate, UICollectionViewDataSource {
//Other methods

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! CustomCollectionViewCell
cell.passDelegate = self
return cell
}

//Add the `performSegue(with:)` delegate method of PassData
func performSegue(with data: String) {
//Perform segue here
self.performSegue(withIdentifier: "SegueIdentifier", sender: data)
}
}

现在在您的 CustomCollectionViewCell 中创建一个名为 passDelegate 类型的实例属性 PassData? 然后在 didSelectRowAt 方法中tableView 调用它的委托(delegate)方法。

class CustomCollectionViewCell: UICollectionViewCell, UITableViewDelegate, UITableViewDataSource {

var passDelegate: PassData?

//Your other methods

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
//Pass whatever data that you want to pass
self.passDelegate?.performSegue(with: array[indexPath.row])
}
}

关于swift - 使用 UITableViewCell 从 UICollectionView 推送 TableViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44234553/

25 4 0
文章推荐: javascript - 检测有多少 div 超出窗口高度
文章推荐: css - 空类定义陷阱?
文章推荐: javascript - 在尺寸有限的
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com