2017-01-27 4 views
7

Ich benutze iCarousel und ich muss meine eigene Schaltfläche erstellen. Ich möchte Daten von der programmierten Schaltfläche an eine andere Ansicht übergeben, aber ich habe keine Segmentkennung, da ich die Schaltfläche programmgesteuert erstellt habe. Ich weiß nicht, ob es möglich ist, den Bezeichner des Abschnitts programmgesteuert zu erstellen.Segue und Button programmgesteuert swift

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 
     } 

    } 
+0

Mögliche Duplikat [Hinzufügen Schaltfläche programmatisch segue auszuführen] (http://stackoverflow.com/questions/21241194/adding-button-programmatically-to-perform-segue) –

Antwort

11

erstellen Seuge

Create Seuge

assign Kennung

enter image description here

und Ihre Schaltfläche Ziel

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

Die OP verwendet nicht das Storyboard für den Übergang, er erzeugt den Button dynamisch ... –

+0

segue ist nicht create on button klicken es ruft beim schreiben self.performSegue (withIdentifier: "segueToNext", sender: self) –

+0

@harshalvalanda danke! perfekt – user1781908

0

in Ihrem Fall, wenn Sie self.present verwenden und Daten zwischen Ansichten senden möchten. Versuchen Sie folgendes:

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

Ich weiß nicht, wie segue Kennung gesetzt, aber ich denke, Code über

helfen können, wenn Sie leichtere Arbeit tun wollen, können Sie erstellen segue in IB (Interface Builder) und set es Kennung, dann verwenden

performSegue:withIdentifier:sender