Ich habe ein sehr einfaches Projekt, wo eine Ansicht (Ansicht senden) Aussehen der zweiten Ansicht ändern sollte (Empfangsansicht). Ich versuche Delegierung zu verwenden, aber ich habe ein Problem mit der Variablen "delegieren" in SendingVC zuweisen. Ich habe versucht, es in Override Func "Prepare" in ReceivingVC zu tun, aber diese Methode wird nicht aufgerufen.Swift - Delegate-Methode mit TabBar
Ich denke, dieser Code funktionieren könnte, aber ich weiß nicht, wo ich es sollte:
let sendVC : SendingVC! = tabBarController?.viewControllers![1] as! SendingVC
sendVC.delegate = self
ReceivingVC:
import UIKit
class ReceivingVC: UIViewController, DataSendDelegate {
@IBOutlet weak var Label: UILabel!
func userDidEnterData(data: String) {
Label.text = data
}
override func viewDidLoad() {
super.viewDidLoad()
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let sendVC : SendingVC! = tabBarController?.viewControllers![1] as! SendingVC
sendVC.delegate = self
}
}
SendingVC:
import UIKit
protocol DataSendDelegate {
func userDidEnterData(data: String)
}
class SendingVC: UIViewController {
var delegate: DataSendDelegate? = nil
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func setTextButton(_ sender: UIButton) {
if delegate != nil {
delegate?.userDidEnterData(data: "some text")
}
}
}
Sie sollten Ihren Code als Schnipsel anstelle von Bildern hinzufügen. –
Ok, ich habe es bearbeitet – Michal
Haben Sie versucht, Ihren Code in die ViewDidLoad-Methode von ReceivingVC zu setzen? – bjd23