È possibile passare i dati nell'elemento userDictionary della chiamata API
NSDictionary *aDictionary = [[NSDictionary alloc] initWithObjectsAndKeys:
anObject, @"objectName",
anotherObject, @"objectId",
nil] autorelease];
[[NSNotificationCenter defaultCenter] postNotificationName:@"AnythingAtAll" object:nil userInfo:aDictionary];
È possibile recuperare il dizionario dalla notifica in entrata che si osserva. Aggiungi l'osservatore prima di pubblicare la notifica.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(anyAction:) name:@"AnythingAtAll" object:nil];
questo potrebbe essere nel metodo init o di un metodo viewDidLoad
-(void)anyAction:(NSNotification *)anote
{
NSDictionary *dict = [anote userInfo];
AnyClass *objectIWantToTransfer = [dict objectForKey:@"objectName"];
}
nota che è necessario rimuovere l'oggetto in qualità di osservatore nel metodo dealloc.
[[NSNotificationCenter defaultCenter] removeObserver:self]
fonte
2012-04-23 20:44:35
grazie per il vostro aiuto. Tuttavia, in che modo sei ** addObserver ** prima di eseguire ** postNotificationName ** in seguito. In [here] (http://stackoverflow.com/questions/10283014/can-not-catch-a-notification-in-iphone), faccio la stessa cosa che fai tu, ma il ** selector ** non viene chiamato dopotutto. – tranvutuan
Sì per chiarire è necessario aggiungere l'osservatore prima di pubblicare la notifica. Solitamente ciò avverrà nei metodi init o viewdidload. –
Ho bisogno di qualche altro esempio ... per favore fornisci qualche altro esempio di postnotifiche. – vijay