Im folgenden Code habe ich eine ViewController
("SenderViewController"), die eine Nachricht an die Haupt ViewController
leitet, wenn eine Schaltfläche angetippt wird. Was ich nicht vollständig verstehe ist, wie messageData()
Methode in der Haupt ViewController
wissen, wann auf die Nachricht zu hören.Wie Daten zwischen UIViewControllern mit Protokollen/Delegaten übergeben werden
Kann mir bitte jemand erklären, was die messageData()
Methode in der Haupt ViewController
auslöst?
SenderViewController:
import UIKit
protocol SenderViewControllerDelegate {
func messageData(data: AnyObject)
}
class SenderViewController: UIViewController {
@IBOutlet weak var inputMessage: UITextField!
var delegate: SenderViewControllerDelegate?
@IBAction func sendData(sender: AnyObject) {
/
if inputMessage.text != ""{
self.presentingViewController!.dismissViewControllerAnimated(true, completion: nil)
self.delegate?.messageData(inputMessage.text!)
}
}
}
Hauptviewcontroller:
import UIKit
class ViewController: UIViewController, SenderViewControllerDelegate{
@IBOutlet weak var showData: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func goToView(sender: AnyObject) {
let pvc = storyboard?.instantiateViewControllerWithIdentifier("senderViewController") as! SenderViewController
pvc.delegate = self
self.presentViewController(pvc, animated:true, completion:nil)
}
// What triggers this method, how it know when to listen?
func messageData(data: AnyObject) {
self.showData.text = "\(data)"
}
}
Vielen Dank!
Dieser Aufruf 'selb.delegate? .messageData' von' func sendData' in 'SenderViewController' führt ihn aus. – iphonic
Folgen Sie dieser Anleitung, Sie erhalten Ihre Antwort - http://www.tutorialspoint.com/ios/ios_delegates.htm –
Weitergabe von Daten mit Delegate Swift 4.0: https://iosdevcenters.blogspot.com/2017/11/what- is-protocol-how-to-pop-daten-using.html – Bhadresh