Having the following code:
ViewController2:
import UIKit
protocol TransferirTexto {
func transferir(texto : String)
}
class SecondViewController: UIViewController {
@IBOutlet weak var textField: UITextField!
var delegate : TransferirTexto?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func transferirDato(sender: AnyObject) {
delegate?.transferir(textField.text!)
self.navigationController?.popViewControllerAnimated(true)
}
}
ViewController1:
import UIKit
class ViewController: UIViewController, TransferirTexto {
@IBOutlet weak var miLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
func transferir(texto: String) {
miLabel.text = texto
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let svc = segue.destinationViewController as! SecondViewController
svc.delegate = self
}
}
How does the issue of delegates work in this case?
When changing from one viewController to another, does not the first viewController get destroyed? The question arises of how do I pass it a .delegate = self
if the viewController is going to be destroyed?