通知在Presentviewcontroller Objective-C中不起作用

时间:2019-06-06 13:14:58

标签: objective-c iphone notifications presentviewcontroller

当我收到API的回复时,我正在显示UIAlertController。响应后,我想调用其他视图控制器的通知。

我在视图控制器1中添加了观察者,如下所示:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(UpdateAthleteDictionaryNotification:) name:@"UpdateAthleteDictionary" object:self.dictProfile];

在视图控制器2中,我的代码如下:

UIAlertController * alert = [UIAlertController
                                 alertControllerWithTitle:applicationName
                                 message:[jsonObject valueForKey:@"responseMessage"]
                                 preferredStyle:UIAlertControllerStyleAlert];
    UIAlertAction* yesButton = [UIAlertAction
                                actionWithTitle:@"Ok"
                                style:UIAlertActionStyleDefault
                                handler:^(UIAlertAction * action) {
                                    dispatch_async(dispatch_get_main_queue(), ^{
                                        [[NSNotificationCenter defaultCenter] postNotificationName:@"UpdateAthleteDictionary" object:self.dictProfile];
                                    });
                                    [self.navigationController popViewControllerAnimated:YES];
                                }];
    [alert addAction:yesButton];
    [self presentViewController:alert animated:YES completion:nil];

但它不会调用。因此,请您为我提供解决方案。

1 个答案:

答案 0 :(得分:1)

仅当名称和对象相同(source)时,NSNotificationCenter才会传递您的通知。 如果要接收带有任何对象的通知,则应将nil作为对象参数传递给您,

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