Segue and Button programmatically swift

笑着哭i 提交于 2019-11-26 01:54:53

问题


I am using iCarousel and I have to create my own button. I want to pass data from the button made programmatically to another view, but I don\'t have a segue identifier because I created the button programmatically. I don\'t know if it is possible to create the identifier of the segue programmatically.

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
        }

    }

回答1:


Create seuge

Assign identifier

and your button target

 @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
        }
    }
 }



回答2:


in your case, if you use self.present and you want to send data between views. Try this:

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

I don't know how to set segue's identifier but I think code above can help

If you want do to easier work, you can create segue in IB (Interface Builder) and set it's identifier, then use

performSegue:withIdentifier:sender


来源:https://stackoverflow.com/questions/41886592/segue-and-button-programmatically-swift

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!