Sono nuovo alla programmazione & Swift e sto cercando di capire come passare i dati tra due controller di vista (nessun seguito) con protocolli e delegati.Cercando di capire il protocollo/delegati in Swift
Ho un controller di visualizzazione (VISTA A) che ha un campo di testo e un pulsante. Quando l'utente preme quel pulsante, dovrebbe mostrare quel testo in un'etichetta in un altro View Controller (VISTA B).
Non riesco a ottenere l'etichetta per mostrare il testo - Gradirei una spiegazione di ciò che è necessario per fare questo lavoro.
Grazie mille!
import UIKit
protocol sendNameToViewB {
func showNameLabel(name:String)
}
class ViewA: UIViewController {
var delegate: sendNameToViewB?
@IBOutlet weak var textField: UITextField!
@IBAction func addButton(sender: AnyObject) {
delegate?.showNameLabel(textField.text)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
class ViewB: UIViewController, sendNameToViewB {
@IBOutlet weak var theLabel: UILabel!
func showNameLabel(name: String) {
theLabel.text = name
}
}
Grazie per il vostro aiuto @drewag! –
Il metodo "diretto" non creerebbe una nuova istanza di ViewControllerB? Inoltre, ho dovuto usare 'var tabbarViewController: TabBarViewController = TabBarViewController()' invece come il modo in cui hai messo non ha funzionato (variabile rimasta nil) –
@ByronCoetsee e OP, hai tutte le risorse andando più in profondità su quale metodo seguire? Quando è necessario l'accoppiamento? ecc. Grazie! –