Tengo un código para limpiar en mi viewWillDisappear:
, que solo quiero usar cuando la vista se mueva de regreso al controlador de vista padre.isBeingDismissed no configurado en viewWillDisappear:
- (void)viewWillDisappear:(BOOL)animated
{
if ([self isMovingFromParentViewController] || [self isBeingDismissed]) {
NSLog(@"isMovingFromParentViewController or isBeingDismissed");
// clean up
}
[super viewWillDisappear:animated];
}
La vista se puede presentar en dos formas: puede ser empujado por un controlador de navegación, o presenta como un controlador de vista modal (desde el mismo controlador de navegación). Si se presiona, luego aparece (presionando el botón Atrás), se ejecuta mi código de limpieza. Si se presenta como un controlador de vista modal, luego se descarta, el código no se ejecuta.
me despido de este modo:
[rootViewController dismissModalViewControllerAnimated:YES];
Mi pregunta es: ¿por qué no es isBeingDismissed
set cuando me despido de mi controlador de vista?
puedo confirmar que 'isBeingDismissed() 'devuelve' false' cuando el control de vista supuestamente aparece desde un 'UINavigationController', como el detalle viewController en un' UISplitViewController' colapsado. – bio