Daten mit NSNotificationCenter übergeben
Sie können auch Daten mit NotificationCentre in Swift 3.0 und NSNotificationCenter in Swift 2.0 übergeben.
Swift 2.0 Version
Übergeben Sie Informationen mit userInfo, das ein optionales Dictionary vom Typ [NSObject : AnyObject]? ist.
let imageDataDict:[String: UIImage] = ["image": image]
// Eine Benachrichtigung veröffentlichen
NSNotificationCenter.defaultCenter().postNotificationName(notificationName, object: nil, userInfo: imageDataDict)
// Registrieren Sie sich, um die Benachrichtigung in Ihrer Klasse zu empfangen
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.showSpinningWheel(_:)), name: notificationName, object: nil)
// Behandeln Sie die Benachrichtigung
func showSpinningWheel(notification: NSNotification) {
if let image = notification.userInfo?["image"] as? UIImage {
// Machen Sie etwas mit Ihrem Bild
}
}
Swift 3.0 Version
Der userInfo nimmt jetzt [AnyHashable:Any]? als Argument an, das wir als Dictionary-Literal in Swift bereitstellen
let imageDataDict:[String: UIImage] = ["image": image]
// Eine Benachrichtigung veröffentlichen
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "notificationName"), object: nil, userInfo: imageDataDict)
// `default` ist jetzt eine Eigenschaft, keine Methodenaufruf
// Registrieren Sie sich, um die Benachrichtigung in Ihrer Klasse zu empfangen
NotificationCenter.default.addObserver(self, selector: #selector(self.showSpinningWheel(_:)), name: NSNotification.Name(rawValue: "notificationName"), object: nil)
// Behandeln Sie die Benachrichtigung
func showSpinningWheel(_ notification: NSNotification) {
if let image = notification.userInfo?["image"] as? UIImage {
// Machen Sie etwas mit Ihrem Bild
}
}
Quelle Datenübertragung mit NotificationCentre(Swift 3.0) und NSNotificationCenter(Swift 2.0)