collectionViewCellsを使用し、segue経由で次のViewControllerにデータを送信しようとしています。 indexPathを取得するのは、tableViewCellのように単純ではありませんが、取得するためにこれを行うことはできますが、「オプション値をアンラッピングしている間に予期せず見つからない」エラーが発生します。ここでPreparetoSegue中に選択したUICollectionViewCellのインデックスパスを取得していますか?
は、コードは次のとおりです。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let cell = sender as? MainCollectionViewCell {
if let indexPath = self.collectionview.indexPath(for: cell) {
// use indexPath
print(indexPath.row)
let destvc: H1ViewController = segue.destination as! H1ViewController
destvc.backgroundimg.image = UIImage(named: magazines[indexPath.row].image)
}
}
}
私はindexpath.rowを印刷し、値を取得しています。だから私はそれが懸念されている限り私は罰金だと確信しています。私は強制的にアンラッピングしていないことを確認するためにletを使用しています。ここで何が間違っていますか?
segue.destinationとして! H1ViewControllerは、letが正しいタイプであることを確認できるようにします。また、デバッガを使用してみてください。 – Gerriet
また、これは実行時に発生し、確かにコンパイラエラーではないので、そのタグを削除することをお勧めします。 – Gerriet
@Gerrietちょうどその行にもletを使用してみました。まだ何も! –