viewDidDisappear no se llama cuando se usa presentViewController

Tengo un UIViewController tiene este método:

 - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; NSLog(@"DISAPPEAR"); lastKnownOrientation = [self interfaceOrientation]; } -(void)openSendVC{ SendMsgViewController *vc = [[SendMsgViewController alloc]initWithNibName:@"SendMsgViewController" bundle:nil]; [self.navigationController pushViewController:vc animated:NO]; } 

En el segundo controller de vista ( SendMsgViewController ) viewDidLoad , tengo lo siguiente:

 [self presentViewController:picker animated:YES completion:NULL]; 

donde el selector es un UIImageViewPicker .

El problema es que cuando llamo al método openSendVC se openSendVC un controller nuevo, pero no se llama a viewWillDisappear (del primer viewController).

Ese es el comportamiento correcto. Aquí hay un extracto de viewWillDisappear: de la documentation de API de UIViewController :

Este método se invoca en respuesta a una vista que se elimina de una jerarquía de vista. Este método se invoca antes de que la vista se elimine y antes de que se configuren las animaciones.

Presentar un nuevo controller de vista para que oculte el otro controller de vista no count como la vista desaparece, solo que realmente se elimina de una jerarquía de vista (por ejemplo, con algo así como popViewControllerAnimated: .