Что мне здесь не хватает? Я просто пытаюсь отправить простое уведомление с модального контроллера представления обратно на контроллер представления, который запустил его, но ничего не получено.NSNotification Не получен от Modal ViewController
Это код в контроллере представления, который запускает модальное SEGUE:
- (IBAction) chooseSuperGroup:(UIButton *)sender {
NSLog(@"super group choice about to be made");
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(choiceReceived:)
name:@"selectionMade"
object:self];
}
- (void) choiceReceived: (NSNotification *) notification
{
NSLog(@"here");
if ([[notification name] isEqualToString:@"selectionMade"]) {
NSLog(@"received");
NSLog(@"%@", (NSString *)[notification userInfo]);
}
[[NSNotificationCenter defaultCenter] removeObserver:self
name: @"selectionMade"
object:self];
}
Затем, в течение в контроллере представления модально, этот код выполняется, когда пользователь выбирает ячейку из представления таблицы:
NSDictionary *dict = [NSDictionary dictionaryWithObject:selection forKey:@"superGroup"];
NSLog(@"printing dictionary contents");
for (id key in dict) {
NSLog(@"key: %@ object: %@", key, [dict objectForKey:key]);
}
[[NSNotificationCenter defaultCenter] postNotificationName:@"selectionMade" object:self userInfo:dict];
Мой результат выглядит следующим образом:
Super group choice about to be made
printing dictionary contents
key: superGroup object: myChoice
Так что выбор захватывается и добавлен в словарь. Но нет никаких доказательств получения какого-либо уведомления. Это не может быть так сложно, но я не вижу своей ошибки. Кто-нибудь может мне помочь? Благодаря!
Это было. Я попробовал «ноль» на стороне наблюдателя, но не на стороне уведомителя. Благодаря! – Alex
Кроме того, пока вы регистрируетесь для уведомления с помощью 'object: nil' (что означает: я принимаю уведомление от любого объекта), обычно * отправляет * уведомление с помощью' object: self', который просто передает объект вдоль для слушателей, если они хотят допросить отправителя. Это 'nil' на конце регистра, что имеет значение с точки зрения получения уведомления. – Olie