Dismiss 2 controladores de exibição modal
Eu tenho um controlador de exibição modal base. então crio um segundo com:
FieldReportViewController *fieldReport = [self.storyboard instantiateViewControllerWithIdentifier:@"fieldReportView"];
[self presentModalViewController:fieldReport animated:YES];
a partir daí, chamo um terceiro controlador de exibição com:
ScoutingReportViewController *scoutingReport = [self.storyboard instantiateViewControllerWithIdentifier:@"ScoutView"];
[self setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[self presentModalViewController:scoutingReport animated:YES];
gora, quero voltar ao primeiro controlador de exibição. Eu tentei (isso é mostrado no momento, veja o controlador):
-(IBAction)doneBtn
{
//[self.parentViewController dismissModalViewControllerAnimated:YES]; //removed
[self dismissModalViewControllerAnimated:NO]; //added
[[NSNotificationCenter defaultCenter] postNotificationName:@"CloseAllModalViews" object:nil userInfo:nil]; //added
}
no controlador de visualização middle / s, adiciono um observador no viewDidLoad:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(dismissModals:)
name:@"CloseAllModalViews"
object:nil];
e método:
-(void) dismissModals:(id)sender
{
[self dismissModalViewControllerAnimated:NO];
}
quando pressionado, não faz nada. não descarta nenhuma visualização.
Qualquer idéia de como posso fazer isso funcionar?
EDIT: descobri por que estava caindo; Eu tinha esquecido que adicionei um segue ao meu botão Concluído no IB. isso levou a problemas de memória e estava causando a falha.
EDIT 2: isso descartará os dois controladores de visão de volta à base / primeira controladora de visão. embora não me dê nenhuma animação. posso descartar o VC atual sem animar e descartar o VC do meio com animação, mas vejo o VC do meio brevemente antes da transição. eu preferiria ter uma animação do VC atual para o VC base, se possíve