Ich weiß, dass diese Frage schon oft gestellt wurde, aber ich bin es verdammt leid, nach diesem Fehler zu suchen, konnte es aber nicht schaffen.NSNotificationCenter addobserver ruft die selector-Methode nicht in SWIFT
Ich habe ein Szenario, in dem ich von einem ViewController zu einem anderen wechseln, d. H. (VC1-> VC2). Ich verwende NSNotificationCenter, um einige Daten an die andere VC zu übergeben.
VC1 -
@IBAction func sendNotfctn(sender: AnyObject)
{
NSNotificationCenter.defaultCenter().postNotificationName("MY NOTIFICATION", object: self)
performSegueWithIdentifier("Go", sender: self)//Here I move to VC2.
}
VC2
override func viewDidLoad()
{
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: "actOnMyNotification:", name: "MY NOTIFICATION", object: nil)
// Do any additional setup after loading the view.
}
func actOnMyNotification(notification:NSNotification)
{
print("I recived the notification!")
}
Aber meine Wähler Methode wird nicht aufgerufen. Welches Problem oder welchen Fehler mache ich?
verwendet Version - XCode 7.2, SWIFT - 2.1.1
Update -
Ich habe VC1 - VC2 (eingebettet in Navigation-Controller). Der von mir verwendete Kanal ist von VC1 mit dem Navigationscontroller von VC2 verbunden. Daher kann ich die Überfahrt nicht verwenden.
Überschreibung func prepareForSegue (segue: UIStoryboardSegue, Absender: ANYOBJECT) {
if segue.identifier == "Go"
{
let destVC = segue.destinationViewController as! VC1//this line is not possible for my above said case
}
}
Wenn irgendwelche Alternativen bitte vorschlagen.
schicken Dies wird wahrscheinlich funktioniert nicht, da die Benachrichtigung zuerst gepostet wird und Ihr Beobachter nicht darauf eingestellt ist. –
Sehen Sie diese Tutorials: https://iosdevcenters.blogspot.com/2016/03/nsnotification-nsnotificationcenter-in.html –
Dieser Doen ruft nicht, wegen des Aufrufs PostNotification vor dem Hinzufügen des Beobachters. –