通知在 Presentviewcontroller 中不起作用 objective-c
Notification does not work in Presentviewcontroller objective-c
当我收到来自 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];
但是它不调用。所以请你给我建议解决方案。
NSNotificationCenter 只会在名称和对象相同的情况下发送您的通知 (source)。
如果你想接收附加任何对象的通知,你应该将 nil 作为对象参数传递,在你的情况下:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(UpdateAthleteDictionaryNotification:) name:@"UpdateAthleteDictionary" object:nil];
当我收到来自 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];
但是它不调用。所以请你给我建议解决方案。
NSNotificationCenter 只会在名称和对象相同的情况下发送您的通知 (source)。 如果你想接收附加任何对象的通知,你应该将 nil 作为对象参数传递,在你的情况下:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(UpdateAthleteDictionaryNotification:) name:@"UpdateAthleteDictionary" object:nil];