gpt4 book ai didi

swift - 为什么在执行 segue 以显示详细信息时我会得到两个连续的 View Controller

转载 作者:行者123 更新时间:2023-11-28 14:07:23 25 4
gpt4 key购买 nike

当我点击 uicollectionViewCell 时,我来到一个空的 ViewController,一瞬间,一个新的 ViewController 被创建 - 正确显示数据。回去我必须点击后退按钮两次才能导航回原来的 viewController。在 MainStoryboard 中,我实现了一个“显示细节”segue。这里发生了什么?我需要检查什么??这是代码:

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {

let cell = collectionView.cellForItem(at: indexPath) as! CollectionViewCell

key = cell.keyImage.image

performSegue(withIdentifier: "showKeyDetails", sender:self)

}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showKeyDetails"{
if let destVC = segue.destination as? KeyDetailViewController{
if key != nil{
destVC.key = key
}
}
}
}

最佳答案

您从 collectionView 单元连接了您的 segue。因此,当您选择单元格时,会触发一个转场,然后 performSegue 创建第二个转场。

要解决此问题,您可以:

  1. 删除 performSegue 调用,删除 didSelectItem 函数并更新您的 prepare(for:sender:) 函数以找到键:

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "showKeyDetails"{
    if let destVC = segue.destination as? KeyDetailViewController,
    let cell = sender as? CollectionViewCell,
    let key = cell.keyImage.image
    {
    destVC.key = key
    }
    }
    }

    或:

    2) 从 VC 顶部的 viewController 图标而不是从单元格连接 segue。

关于swift - 为什么在执行 segue 以显示详细信息时我会得到两个连续的 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52865316/

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