Правильный подход таков.Сначала выясните, как вы хотите вызвать переход.Один из вариантов, в didSelect
, вызывает переход в коде:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
self.performSegue(withIdentifier: "seguetosound", sender: self)
}
Но еще лучше, просто полностью удалите didSelectItemAt
и получите переход в раскадровке из ячейки.Таким образом, переход запускается автоматически, когда пользователь касается ячейки.
Затем, в prepare
, выясните, какой путь индекса был выбран, и извлеките данные из модели и передайте их в контроллер представления назначения (это может не скомпилироваться, потому что ваши имена переменных настолько ужаснычто я не могу прочитать ваш код, но в целом это правильный подход):
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "DetailSecondVC" {
if let detailVC = segue.destination as? DetailSecondVC {
if let paths = collectionView?.indexPathsForSelectedItems {
let row = paths[0].row
detailVC.SoundClass = SoundClasss[row]
}
}
}
}