Hinzufügen des Observer:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tapNewProduct:) name:@"TapNewProduct" object:nil];
Sie der Beobachter in den "für die Dinge zu hören". Die Aussage oben sagt: „Wenn Sie eine TapNewProduct Meldung hören, dann die Methode execute (Selektor) tapNewProduct
Mitteilungen an die Observer Posting:.
// This can be on a different viewController or the same viewController the
// observer lives
[[NSNotificationCenter defaultCenter] postNotificationName:@"TapNewProduct" object:self.productID];
Sie eine Benachrichtigung hinterlassen würde, wenn Sie wollen die tapNewProduct
Methode (Selektor) auszuführen
den Observer Entfernen.
Diese Zeile sendet die Benachrichtigung. Sie hätten dies wahrscheinlich in didSelectRowAtIndexPath
, einem UIButton
oder einem UICollectionView
.
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"TapNewProduct" object:nil];
würde diese Linie in dealloc
der UIViewController
gehen, wo Sie den Beobachter hinzugefügt. Wenn die Zuweisung aufgehoben wird, wird der Beobachter entfernt.
Schritte:
1) hinzufügen den Betrachter ersten.
2) DANN du post die Benachrichtigung, die der Beobachter aufnimmt und führt dann den Selektor aus, den Sie beim Hinzufügen des Beobachters angegeben haben.
3) Wenn Sie die Klasse freigeben, wo Sie den Beobachter ursprünglich hinzugefügt, Sie den Betrachter entfernen (es in dealloc
, setzen nichtviewDidDisappear
).
Sehen Sie diese Antwort für eine ausführlichere Erklärung:
https://stackoverflow.com/a/2191802/4475605
[[NSNotificationCenter defaultCenter] postNotificationName: @ "TapNewProduct" object: self.productID]; // NSDictionary * dict = @ {@ "productID": self.productID}; // [[NSNotificationCenter defaultCenter] postNotificationName: @ "TapNewProduct" objekt: nil userInfo: dict]; Die zwei Methoden, die besser ist –