В моем приложении iOS пользователь может выбрать изображение из списка, на котором им будет представлен модальный код, содержащий изображение и параметры для удаления изображения. Если пользователь хочет удалить изображение, она возвращается в исходный viewController, содержащий список изображений. Мне нужно затем обновить исходный ViewController, чтобы принять во внимание удаленное изображение.
Я попытался использовать NSNotificationCenter для трансляции, когда изображение будет удалено в родительский View Controller. Однако похоже, что трансляция так и не была получена.
Есть ли другой способ
- отправить данные обратно в родительский 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
}
Заранее благодарим за помощь!