Transfert d’une image vers un secondViewController via tapGesture

Bonjour,

Voilà je rencontre un problème :
Je souhaiterai transférer une image sur un secondViewController en cliquant sur cet image depuis le viewController principal :

  • j’ai donc inclus un tapGesture à mon image ( cocher également mon « user Interaction Enabled » dans les propriétés de mon imageView! Un grand merci à Draken pour son aide)
    Jusque là tout fonctionne quant je clique sur mon image je bascule bien sur mon secondViewController

  • j ai effectué ce code là pour le transfert d’info :

  • et la par contre l’image qui est dans le viewController n’est pas transférer dans le second.

Je pense qu’il me manque quelque chose dans la func de mon tapGesture mais je ne trouve pas.

Si quelqu’un avait une idée.

Je vous en remercie par avance

Bonjour @jmbardin69,

dans ton ViewController si tu fais un

if let image1 = elementChoiceImage1.image, let secondScreen = segue.destination as? secondViewController

au final je tu n’es pas sur que tu rentres dans ta condition donc possiblement, tu n’y rentre pas et tu n’envoie rien tu devrait faire un print dans ton if let pour voir si tu y passes.

teste ça tu en mettant une image qui existe dans le else

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if (segue.identifier == "segue-ecran-1") {
            let viewController = segue.destination as! secondViewController
            if let image1 = elementChoiceImage1.image {
                 secondScreen.imageToDisplay = image1
            } else {
                 secondScreen.imageToDisplay = UIImage(named : "le_nom_d_une_image_asset")
           }
        }
    }

pense que la fonction prepare(for segue: UIStoryboardSegue, sender: Any?) sera appeler quand tu fais un performSegue(withIdentifier: "segue-ecran-1", sender: self) dans ton code ou que tu as fait une connexion via IB.

Damien

Je vais essayer, mais l’image n’est pas une image fixe elle est variable suivant l’action de d’un slider.

Je comprend bien juste passe lui une image fixe pour savoir si c’est bien tu arrives à la récupérer dans l’autre controller, fait par étape.

Je viens d’essqayer Et malheureusement ca ne marche pas. Merci quand même

Désolé mais on va trouver d’où ça viens :slightly_smiling_face:

Si tu mets un print comme ceci il s’affiche dans ta console?

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if (segue.identifier == "segue-ecran-1") {
            if let image1 = elementChoiceImage1.image, let secondScreen = segue.destination as? secondViewController {
                 print("je passe dans prepare")
            }
        }
    }

Du coup j ai trouver solution qui fonctionne :

ViewController.swift

SecondViewControler :

Merci pour ton aide, un regard extérieur ca a toujours du bon!