web-dev-qa-db-fra.com

Segue et Button rapides par programme

J'utilise iCarousel et je dois créer mon propre bouton. Je souhaite transmettre les données du bouton créé par programme à une autre vue, mais je n'ai pas d'identificateur de séquence, car j'ai créé le bouton par programme. Je ne sais pas s'il est possible de créer l'identifiant de la séquence par programme. 

button.addTarget(self, action: #selector(buttonAction3), for: .touchUpInside)
        button.setTitle("\(titulos[index])", for: .normal)
        tempView.addSubview(button)
        let myImage = UIImage(named: "modo4.png") as UIImage?
        button.setImage(myImage, for: .normal)

let viewController:UIViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "modo") as! Modo1ViewController
self.present(viewController, animated: false, completion: nil)

if segue.identifier == "" {
        if let destination = segue.destination as? Modo1ViewController {
            destination.nomb = nombres
        }

    }
10
Juan Jose Rodrigo

Créer un seuil

 Create Seuge

Attribuer un identifiant 

 enter image description here

et votre cible de bouton 

 @IBAction func button_clicked(_ sender: UIButton) {
        self.performSegue(withIdentifier: "segueToNext", sender: self)
 }

 override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "segueToNext" {
        if let destination = segue.destination as? Modo1ViewController {
            destination.nomb = nombres // you can pass value to destination view controller

            // destination.nomb = arrayNombers[(sender as! UIButton).tag] // Using button Tag
        }
    }
 }
15
Harshal Valanda

dans votre cas, si vous utilisez self.present et que vous souhaitez envoyer des données entre les vues. Essaye ça:

let viewController:UIViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "modo") as! Modo1ViewController
viewController.nomb = nombres
self.present(viewController, animated: false, completion: nil)

Je ne sais pas comment définir l'identifiant de segue mais je pense que le code ci-dessus peut aider

Si vous voulez travailler plus facilement, vous pouvez créer un segment dans IB (Interface Builder) et définir son identifiant, puis utiliser

performSegue:withIdentifier:sender
0
Nguyễn Anh Việt