当使用presentViewController时,viewDidDisappear不会被调用

我有一个UIViewController有这个方法:

 - (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]; } 

在第二个视图控制器( SendMsgViewControllerviewDidLoad我有以下内容:

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

picker是一个UIImageViewPicker

问题是,当我调用openSendVC方法openSendVC一个新的控制器,但viewWillDisappear (的第一个viewController)不被调用。

这是正确的行为。 以下是关于viewWillDisappear:的摘录viewWillDisappear:从UIViewController API文档 :

响应从视图层次结构中删除的视图,调用此方法。 在视图被实际删除之前以及configuration任何animation之前调用此方法。

呈现一个新的视图控制器,以便它隐藏另一个视图控制器不视为视图消失 – 仅实际上从视图层次结构中删除(例如,像popViewControllerAnimated: