performsegue - unwind segue programmatically swift 4
Segue y Button programáticamente rápidos (2)
Estoy usando iCarousel y tengo que crear mi propio botón. Quiero pasar datos desde el botón hecho mediante programación a otra vista, pero no tengo un identificador de segue porque creé el botón mediante programación. No sé si es posible crear el identificador del segue programáticamente.
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
}
}
en su caso, si usa self.present y desea enviar datos entre vistas. Prueba esto:
let viewController:UIViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "modo") as! Modo1ViewController
viewController.nomb = nombres
self.present(viewController, animated: false, completion: nil)
No sé cómo configurar el identificador de segue, pero creo que el código anterior puede ayudar
Si desea hacer un trabajo más fácil, puede crear segue en IB (Interface Builder) y configurar su identificador, luego usar
performSegue:withIdentifier:sender
Crear seuge
asignar identificador
y tu objetivo de botón
func buttonAction3() {
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
}
}
}