collectionView
セルのデータを別のView Controllerに渡したいとします。私はこれまでに来ましたが、私は立ち往生しています。基本的には、私のcollectionViewセル内のラベルのテキストを別のView Controllerのラベルに渡したいと思います。以下のコードは動作しません。私は、どのセルがタップされたかを示すコードを追加する必要があると思います。私はこのviewController.dataLabelObject = "Hello"
にこのラインviewController.dataLabelObject = valueToPass
を変更したときにところで、私はあなたはそれが間違って完了です他のコントローラcollectionViewセルのindexPathを取得する
var valueToPass: String!
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
{
if segue.identifier == "mySegue"
{
let viewController = segue.destination as! AnimalsViewController1
viewController.dataLabelObject = valueToPass
}
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)
{
let currentCell = myCollectionView.cellForItem(at: indexPath) as! CollectionViewCell1
valueToPass = currentCell.textLabel.text
performSegue(withIdentifier: "mySegue", sender: self)
}
あなたが問題を解決しようとしている方法は根本的に間違っています。ビューはデータを運ぶためのものではなく、モデルの仕事です。それは、最初にラベル値を提供したモデルをつかんで、その値を渡すことができると言われています。 – Alladinian