Llamar a viewwillappear después de descartar modalviewcontroller

¿Cómo puedo llamar a viewwillappear después de descartar modalviewcontroller ?

Cualquier idea, por favor, porque después de descartar mi viewwillappear no me llamaron:

presentando mi viewcontroller de manera modal: // firsviewcontroller:

 -(IBAction)AddActivity:(id)sender{ CreateActivity *addViewController = [[CreateActivity alloc] initWithNibName:@"CreateActivity" bundle:nil]; addViewController.delegate = self; addViewController.modalPresentationStyle = UIModalPresentationFormSheet; addViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; [self presentModalViewController:addViewController animated:YES]; addViewController.view.superview.frame = CGRectMake(50, 260, 680, 624); } 

// secondvioewcontroller: creo una vista de alerta para descartar esta modalview, pero el viewwillapear no se llamó:

 - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ if (buttonIndex == 0){ if ([self respondsToSelector:@selector(presentingViewController)]){ [self.presentingViewController dismissModalViewControllerAnimated:YES]; } else { [self.parentViewController dismissModalViewControllerAnimated:YES]; } } } 

presentModalViewController:animated: / dismissModalViewControllerAnimated: están en desuso. Use presentViewController:animated:completion: / dismissViewControllerAnimated:completion: lugar.

Puede usar el bloque de finalización para ejecutar cualquier post de código dismisal:

 - (void) alertView: (UIAlertView *) alertView clickedButtonAtIndex: (NSInteger) buttonIndex { if (buttonIndex == 0) { MyCustomViewController* mcvc = (MyCustomViewController*)self.presentingViewController; [self dismissViewControllerAnimated: YES completion: ^{ // call your completion method: [mcvc someCustomDoneMethod]; }]; } } 

Mejor aún, si está utilizando un guión gráfico, puede implementar un desenrollamiento y activar su código de finalización en el método de recuperación de callback.

Dado que está presentando el controller de vista modal como una hoja de formulario , la vista del controller que se presenta nunca desaparece, por lo que viewWillAppear: no se llama después de la finalización. Si desea que el controller de vista presentador maneje algo después del despido, llame a un método de delegado en el método modal viewDidDisappear: method. Ya has configurado el delegado, así que supongo que ya tienes un protocolo de delegado en CreateActivity .

Por cierto, debe usar los methods no desaprobados para presentar y descartar su controller de vista modal.