Segue depuis une CollectionViewCell

Bonjour à tous,

j’en suis à l’étape de safety first et je joue un peu pour adapter le cours à mes besoins.

Pour cela, j’essaye d’utiliser la partie pour passer de la liste à la vue détaillée du MDP depuis une CollectionView.

J’y suis presque mais j’ai un petit soucis.

Le problème est que le changement s’effectue en deux étapes.

1 - si je tap sur une cell, cela prend en mémoire le contenu
2 - je dois taper sur une autre cell pour passer à l’écran suivant et transférer le contenu de la cell précédemment tapée.

Voici le code que j’utilise pour cela.

func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath) {
let selectedBookIndex = indexPath.item
bookItem = _bookManager.getBooks(atIndex: selectedBookIndex)
performSegue(withIdentifier: “segueToDetailsFromCollection”, sender: bookItem)
}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "segueToDetailsFromCollection",
        let bookVC = segue.destination as? BookViewController,
        let book = bookItem {
        bookVC.setBook(book)
        }
    }

Merci beaucoup pour le coup de main

Christophe

Bonjour @Krysbe,

j’ai dû relire 2 fois mais j’ai trouvé le soucis, surtout que j’ai eu exactement le même problème il y a quelques semaines avec une TableView sur un projet client.
Tu as utilisé la fonction de déselection au lieu de la fonction de sélection :slight_smile:
didDeselectItemAt au lieu de didSelectItemAt
Au premier clic tu sélectionne une cell, puis au deuxième tu déselectionne la première et déclenche ta transition.
Remplace ta fonction et tu n’auras plus de soucis

1 J'aime

Ah ah ah c’est génial tellement c’est ridicule.

Quel manque d’attention :slight_smile:

Merci bcp.

Les pires erreurs sont souvent celles qui sont sous les yeux !
Bon courage pour la suite