2012-04-23 15 views

Odpowiedz

18

Można przekazać dane w elemencie userDictionary w wywołaniu API

NSDictionary *aDictionary = [[NSDictionary alloc] initWithObjectsAndKeys: 
          anObject, @"objectName", 
          anotherObject, @"objectId", 
          nil] autorelease]; 
[[NSNotificationCenter defaultCenter] postNotificationName:@"AnythingAtAll" object:nil userInfo:aDictionary]; 

Możesz pobrać słownik z obserwowanego powiadomienia przychodzącego. Dodaj obserwatora przed wysłaniem powiadomienia.

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(anyAction:) name:@"AnythingAtAll" object:nil]; 

to może być w swojej metodzie init, lub metodą viewDidLoad

-(void)anyAction:(NSNotification *)anote 
{ 
NSDictionary *dict = [anote userInfo]; 
AnyClass *objectIWantToTransfer = [dict objectForKey:@"objectName"]; 
} 

pamiętać, że należy usunąć swój przedmiot jako obserwator w metodzie dealloc.

[[NSNotificationCenter defaultCenter] removeObserver:self] 
+0

dziękuję za pomoc. Jednak, jak to zrobić, abyś ** addObserver ** najpierw, a następnie ** postNotificationName ** później. W [tutaj] (http://stackoverflow.com/questions/10283014/can-not-catch-a-notification-in-iphone) robię to samo co Ty, ale ** nie jest selektorem ** mimo wszystko wezwany. – tranvutuan

+0

Tak, aby wyjaśnić, że musisz dodać obserwatora przed wysłaniem powiadomienia. Zwykle będzie to metoda init lub viewdidload. –

+0

Potrzebuję więcej przykładów. Podaj więcej przykładów linków dotyczących postnotyfikacji. – vijay

Powiązane problemy