Ne t’excuse pas, j’ai mis BillyZeBlack…
Par contre en apportant tes modification, ça fonctionne, nickel même, et je t’en remercie.
Mais du coup, pourquoi cette instruction en plus de la fonction prepare for segue ? (juste pour comprendre)
Ah ben super.
; alor en fait cette instruction fais tou simplement appel au segue et du coup execute la fonction preparforsegue, moi j’utilise toujours cette méthode pluto que de fair des segue directement depuis les bouton.
En plus je sais pas si tu a remarquer mais tu a un parametre qui s’appel sender, ben si on voulai améliorer ton code on aurai pu par exemple mettre dans le sender ton object Article et sa aura pour effet de directement l’envoyer a la fonction preparforsegue. Voilà ce que sa donne :
import UIKit
class ViewController2: UIViewController {
// Déclaration des variables var leProduit:[Article] = [] var resultat : Double = 0 var dep: Double = 0 var fin: Double = 0 var eco: Double = 0 @IBOutlet var txbPrixDep: UITextField! @IBOutlet var txbPrixFin: UITextField! var maListe: [Article] = [Article()] override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } // Fonction qui effectue le calcul @IBAction func valider (sender: UIButton) { dep = Double(txbPrixDep.text!)! fin = Double(txbPrixFin.text!)! resultat = dep - (dep * fin/100) eco = dep - resultat let article1 = Article(dPrixDep: dep, dPrixFin: fin, dMontantEco: eco) performSegue(withIdentifier: "donnes", sender: article1 ) } // Transfert du tableau vers la tableview override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == "donnees" { let secondVewController = segue.destination as! PrixTableViewController if let monArticle = sender as? Article{ secondVewController.monTableau.append(monArticle) } } }
//}
Effectivement j’ai réussi à faire ce que je ne parvenais pas à faire depuis…
Encore une fois merci…
Pour en revenir à mon code, ça l’améliore dans quel sens, en terme de performance, ou de lisibilité ou les 2 ? Sachant que l’un ou l’autre, c’est toujours un plus…
Bon on va continuer à suivre les cours pour avancer 
En tout cas merci, merci, merci
Je dirai qu’avec cette méthode tu es sur de ce que tu envoie, imagine toi avec un énorme code ac des centaine de variable qui sont modifier de tous les bous, du coup avec cette technique tu es sur de la valeur que tu envoi.
Et grâce au sender tu peu par exemple verifier sont type et affiche une vue differente en conséquence.
Par exemple faire :
switch sender{
case let a as UIimage : print(“affichage vue image”)
case let b as Article : print(“afficher vue article”)
etc…
}
ouais… je vois à peu près ce que tu essaies de m’expliquer.
Pour voir si j’ai bien saisie le principe de ton exemple, en amont je pourrais avoir plusieurs fonctions contenant l’instruction “performeSegue” avec chacune leur identifiant. Une seule fonction “prepare for segue” au sein de laquelle j’utiliserai le “sender” passer en paramètre, et c’est en fonction du contenu du “sender” que je déterminerai dans un switch au sein de la même fonction, que j’afficherai la vue correspondante… C’est bien ça ?
Alor oui et nan en fait mon exemple est mal choisie , car pour savoir qu’elle vu afficher il faut utiliser l’identifier de préférence. Mais tu peu utiliser le switch case pour determiner le type du sender et agir en consequence. Je sais c’est asser flou mais bon en tous cas sache que tu peu envoyer des object via sender.
Un message a été déplacé vers un nouveau sujet : TableView similaire à SafetyFirst mais vide