Dismiss 2 controladores de vista modal
i tiene un controlador de vista modal base. Luego creo una segunda con:
FieldReportViewController *fieldReport = [self.storyboard instantiateViewControllerWithIdentifier:@"fieldReportView"];
[self presentModalViewController:fieldReport animated:YES];
desde allí, llamo a un tercer controlador de vista con:
ScoutingReportViewController *scoutingReport = [self.storyboard instantiateViewControllerWithIdentifier:@"ScoutView"];
[self setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[self presentModalViewController:scoutingReport animated:YES];
ahora quiero volver al primer controlador de vista. Lo he intentado (actualmente se muestra el controlador de vista):
-(IBAction)doneBtn
{
//[self.parentViewController dismissModalViewControllerAnimated:YES]; //removed
[self dismissModalViewControllerAnimated:NO]; //added
[[NSNotificationCenter defaultCenter] postNotificationName:@"CloseAllModalViews" object:nil userInfo:nil]; //added
}
en medio / s controlador de vista, agrego un observador en viewDidLoad:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(dismissModals:)
name:@"CloseAllModalViews"
object:nil];
y método:
-(void) dismissModals:(id)sender
{
[self dismissModalViewControllerAnimated:NO];
}
cuando se presiona, no hace nada. no descarta ninguna vista.
¿Alguna idea de cómo puedo hacer que esto funcione?
EDIT: descubrí por qué se estaba bloqueando; Había olvidado que agregué un segue a mi botón Listo en IB. esto condujo a problemas de memoria y causó el bloqueo.
EDIT 2: esto descartará ambos controladores de vista al controlador de base / primera vista. Sin embargo, no me da ninguna animación. Puedo descartar el VC actual sin animación y descartar el VC medio con animación, pero veo el VC medio brevemente antes de la transición. Preferiría tener una animación del VC actual al VC base si es posible.