在我的 iOS 应用程序中,用户可以从列表中选择一个图像,然后他们会看到一个包含图像和删除图像选项的模式。如果用户选择删除图像,她将返回到包含图像列表的原始 viewController。然后我需要刷新原始 ViewController 以考虑删除的图像。
当图像被删除到父视图控制器时,我尝试使用 NSNotificationCenter 进行广播。但是,似乎从未收到广播。
有没有其他方法可以
- 模式关闭后将数据发送回父 ViewController,并且
- 检测模式何时从父 ViewController 中消失?
(我尝试按照此处概述的示例进行操作,但似乎没有用)
下面是我的代码:
EditStepViewController(原视图控制器):
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
MediaPreviewViewController *mediaPreviewVC = (MediaPreviewViewController *)[storyboard instantiateViewControllerWithIdentifier:@"MediaPreviewViewController"];
mediaPreviewVC.selectedImageURL = [NSString stringWithFormat:@"%@",gestureRecognizer.view.tag];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:mediaPreviewVC];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(didDismissMediaPreview)
name:@"MediaPreviewDismissed"
object:nil];
[self presentViewController:navigationController animated:YES completion:nil];
MediaPreviewViewController(第二个 ViewController):
...
[self deleteImage];
[[NSNotificationCenter defaultCenter] postNotificationName:@"MediaPreviewDismissed" object:nil userInfo:nil];
[self dismissViewControllerAnimated:YES completion:^(){
NSLog(@"dismissed controller");
}];
然后,回到 EditStepViewController:
-(void)didDismissMediaPreview{
NSLog(@"dismissed media preview"); // this is never logged!
[self.view setNeedsDisplay]; // refresh view to account for deleted image
}
在此先感谢您的帮助!