2011-10-31 22 views
10

Quiero guardar la BD cuando el botón Atrás hizo clic en el controlador de navegación.¿Qué método se invoca cuando se hace clic en el botón Atrás en el controlador de navegación?

así que insertaría el código en el método.

¿Qué método se utiliza cuando se hace clic en el botón Atrás en el controlador de navegación?

+0

Utilice una variable de marca. Si DB no se actualiza, se actualiza DB en el método viewWillDisappear. Esto debería funcionar. –

Respuesta

8

Para hacer lo que le pida, a ver el protocolo UINavigationControllerDelegate, a saber, el método:

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated 

cuando el argumento viewController ya no es su controlador de vista entonces usted debe guardar.

Sin embargo, hacerlo en viewWillDisappear: podría ser una idea mejor (y mucho más simple).

1

Tal vez no sea apropiado, pero eso funcionó para mí. No olvides configurar el delegado UINavaigationController.

- (id <UIViewControllerAnimatedTransitioning>)navigationController:(UINavigationController *)navigationController 
            animationControllerForOperation:(UINavigationControllerOperation)operation 
               fromViewController:(UIViewController *)fromVC 
                toViewController:(UIViewController *)toVC 
{ 
    NSLog(@"from VC class %@", [fromVC class]); 
    if ([fromVC isKindOfClass:[ControllerYouJustPopped class]]) 
    { 
     NSLog(@"Returning from popped controller"); 

    } 

    return nil; 
} 
+0

Esto realmente funciona. !!! – Techiee

Cuestiones relacionadas