que enfrentan el mismo problema, y una mejor solución fue la creación de un "DismissViewProtocol" de la siguiente manera:
del archivo: DismissViewProtocol.h
@protocol DismissViewProtocol <NSObject>
-(void)dismissView:(id)sender;
@end
En mi opinión B-modal, de dejar que la respuesta para el método delegado :
en mi archivo BH:
#import "DismissViewProtocol.h"
@interface B-Modal : UIViewController <DismissViewProtocol>
...
@end
en mi b.m archivo:
-(void) dismissView:(id)sender
{
[((UIViewController *) sender) dismissModalViewControllerAnimated:NO];
[self dismissModalViewControllerAnimated:YES];
}
En el mismo controlador B-view, cuando llamo al A continuación, en mi punto de vista modal B, cuando llamo a la otra vista modal C, suponiendo que para segue:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
((C-ViewController *)segue.destinationViewController).viewDelegate=self;
}
por último, en mi archivo ch, vamos a preparar para el delegado:
@property(nonatomic, weak) id <DismissViewProtocol> viewDelegate;
y en mi archivo cm, acabo de decirle a mi viewDelegate para despedir mi controlador de vista modal y en sí:
-(void)closeBothViewControls
{
[self.viewDelegate dismissView:self];
}
Y eso es todo.
Espero que funcione para todos ustedes.
Probé esto, pero simplemente desestima C. B es aún visible. –
Intenta descartar C sin animación y luego descarta B con animación ... Por cierto, ¿dónde está ubicado este código de descarte (qué clase y cómo se llama este método)? –
El código de descarte está ubicado en C en un método llamado dismissAll. Se activa presionando un UIBarButtonItem. –