Nella mia app iOS, un utente può selezionare un'immagine da un elenco, in cui viene presentata una modale che contiene l'immagine e le opzioni per eliminare l'immagine. Se l'utente sceglie di eliminare l'immagine, viene restituita alla viewController originale contenente l'elenco di immagini. Devo quindi aggiornare il ViewController originale per tenere conto dell'immagine cancellata.Aggiornamento padre ViewController dopo aver eliminato ModalViewController
Ho provato a utilizzare NSNotificationCenter per trasmettere quando un'immagine viene eliminata sul controller di visualizzazione padre. Tuttavia, sembra che la trasmissione non sia mai stata ricevuta.
C'è qualche altro modo per
- dati rimando al genitore ViewController dopo il modal è respinto, e
- rilevare quando il modal è respinto dal genitore ViewController?
(ho provato seguendo l'esempio delineato here, ma non sembra funzionare)
Qui di seguito è il mio codice:
EditStepViewController (originale View Controller):
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 (secondo ViewController):
...
[self deleteImage];
[[NSNotificationCenter defaultCenter] postNotificationName:@"MediaPreviewDismissed" object:nil userInfo:nil];
[self dismissViewControllerAnimated:YES completion:^(){
NSLog(@"dismissed controller");
}];
Poi, di nuovo in EditStepViewController:
-(void)didDismissMediaPreview{
NSLog(@"dismissed media preview"); // this is never logged!
[self.view setNeedsDisplay]; // refresh view to account for deleted image
}
Grazie in anticipo per il vostro aiuto!
Puoi mostrarmi dove hai aggiunto l'osservatore nella vostra editStepViewController –