我有一个具有相似单元格的集合视图控制器,我希望每个单元格打开下一个具有特定内容的viewController。我想我必须发送带有segue的indexpath.row,但在这部分我遇到了一个错误:
<img id="asd"
答案 0 :(得分:0)
在上面的代码中:
newViewController.passedValue = indexPath.row // exactly here
这里indexPath
的价值是多少?是实例变量吗?
不使用segue
,而是使用UICollectionViewDelegate
方法:
override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)
{
//Push your controller here
}
答案 1 :(得分:0)
您的代码中存在一些错误。 indexPath.row
函数中未声明prepare
变量。要将选定的单元格信息传递给另一个视图控制器,首先需要在类中添加一个全局变量。
var selectedCell = 0
接下来在您的班级中实现函数didSelectRowAtIndexPath
。每次选择单元格时都会调用此函数。在此函数中获取单元格信息并将其分配给selectedCell
var
override func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath) {
selectedCell = indexPath.row
}
现在在prepare
方法中使用此var值并将其传递给下一个控制器
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "YourIdentifier" {
let VC = segue.destination as! YourViewController
VC.passed = selectedCell
}
}
希望这会有所帮助。