当我单击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
}
}
}
}
答案 0 :(得分:1)
您已从collectionView单元中连线。因此,当您选择单元格时,会触发segue,然后performSegue
创建第二个segue。
要解决此问题,您可以:
删除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。