Bonjour,
J'ai un problème d'affichage de mon [String] dans une TableView, je vous montre :
Avant la page ci-dessous il y a un TableViewController qui contient une marque différente dans chaque case
Quand l'on appuie sur par exemple RS3 ou RS4 etc... :
Pour chaque modèle ( rs3, rs4 etc..) le 0 s'affiche dans la première cellule au lieu du nom du modèle
Le tableau est défini comme ceci :
var Marques: [Marque] = [
Marque(nom: "AUDI",modele:["0","RS3","RS4","RS5","RS6","RS7","R8"], image: "logo-audi", imageVoiture: [""], like: false),
Le code que j'ai écrit pour essayer d'afficher le nom du modèle :
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
switch indexPath.row {
case 0:
let cell = tableView.dequeueReusableCell(withIdentifier: "ModeleInfoNom", for: indexPath) as! ModeleInfoTableViewCell
cell.ModeleInfoNomLabel.text = ModeleInfo.modele[indexPath.row]
return cell
Ce que j'aimerai faire c'est mettre le nom du modèle dans chaque cellule qui va bien, si je clique sur rs3 à la place du 0 il faut qu'il y a écrit rs3, si je clique sur rs4 à la place du 0 il faut qu'il y a écrit rs4
Merci de votre aide
Vous avez un décalage entre le numéro de cellule et le dataSource. ici, la cellule zero devrait contenir l'élément du bon modèle. Et son numéro doit être passé en paramètre quand vous cliquez sur la cellule de la premiere vue.
Je ne comprends pas pourquoi vous avez un tableView dans la seconde view…
Comment passez vous à la seconde view ? Comment avez vous défini le segue (avec son ID SegueToInfos) pour aller à la seconde vue ?
La façon classique de le faire :
- dans la 1ere class, définissez le segue pour aller à la seconde view
créez la fonction :
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
dans laquelle vous appellerez perform (segue …) créez la fonction prepare dans laquelle vous allez passer le paramètre à la seconde view:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
}
Vous utilisez alors ce paramètre dans le seconde vue.
Pour être plus précis, il faut que vous montriez le code des 2 class.