Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Swift Discussion :

Problème avec @IBAction


Sujet :

Swift

  1. #1
    Candidat au Club
    Problème avec @IBAction
    Bonsoir très chers amis,

    Je fais appel à votre savoir car après de longues recherches sur de multiples forums et sur des cours en ligne, je n'arrive pas à utiliser les actions (@IBAction) de la manière souhaitée.

    Je vous explique. Dans une partie de mon programme, je dois afficher la deuxième vue (SecondViewController) UNIQUEMENT si des conditions lui ordonnent d'afficher cette fenêtre. Si ces conditions ne sont pas réunies, je souhaiterai afficher un message d'erreur sur la première fenêtre. Je précise que cela ce passe sous IOS.

    Voici un exemple de ce que je voudrais:

    var nom: String = "Jean"

    @IBAction func resultat(_ sender: UIButton) {
    if nom == "Jean"{
    //change fenêtre
    }
    else{
    //affiche un message sur la première fenêtre
    }
    }

    Je sais que ce n'est pas comme ça que ça fonctionne mais c'est juste un exemple pour remplacer mes mots. J'espère que quelqu'un saura répondre à ma question.

  2. #2
    Membre habitué
    Réponse
    Hello Valkym,

    Désolé pour la réponse tardive, voici un exemple de code (Attention, il n'y a pas de navigationController dans l'exemple et je n'ai pas utilisé storyboard).

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    import UIKit
     
    class ViewController: UIViewController {
     
        var nom: String = "Jean"
        let buttonClick: UIButton = {
            let button = UIButton()
            button.translatesAutoresizingMaskIntoConstraints = false
            button.layer.borderWidth = 2
            button.layer.borderColor = UIColor(red: 0/255, green: 174/255, blue: 239/255, alpha: 1).cgColor
            button.setTitle("test", for: .normal)
            button.setTitleColor(UIColor(red: 0/255, green: 174/255, blue: 239/255, alpha: 1), for: .normal)
            button.addTarget(self, action: #selector (resultat(_<img src="images/smilies/icon_smile.gif" border="0" alt="" title=":)" class="inlineimg" />), for: .touchUpInside)
            return button
        }()
     
        override func viewDidLoad() {
            super.viewDidLoad()
            self.view.backgroundColor = .white
            self.view.addSubview(buttonClick)
     
            redessine(UIScreen.main.bounds.size)
        }
     
        //MARK: - Affichage
        func redessine(_ size: CGSize) {
            let views = ["buttonClick": buttonClick]
            self.view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V<img src="images/smilies/icon_neutral.gif" border="0" alt="" title=":|" class="inlineimg" />-(250)-[buttonClick]-(>=20)-|", options: [], metrics: nil, views: views))
            self.view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H<img src="images/smilies/icon_neutral.gif" border="0" alt="" title=":|" class="inlineimg" />-(200)-[buttonClick]-(200)-|", options: [], metrics: nil, views: views))
        }
     
        //MARK: - Fonctions
        @objc func resultat(_ sender: UIButton) {
            if nom == "Jean" {
                let deuxiemeVue = DeuxiemeViewController()
                self.present(deuxiemeVue, animated:true, completion:nil)
            }else{
                let alertController = UIAlertController(title: "Attention", message: "Ceci est une alerte", preferredStyle: .alert)
                let okAction = UIAlertAction(title: "OK", style: .default, handler: nil)
                alertController.addAction(okAction)
                present(alertController, animated: true, completion: nil)
            }
        }
     
    }


    Bien à toi

    Benjisan

###raw>template_hook.ano_emploi###