当使用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]; }
在第二个视图控制器( SendMsgViewController
) viewDidLoad
我有以下内容:
[self presentViewController:picker animated:YES completion:NULL];
picker是一个UIImageViewPicker
。
问题是,当我调用openSendVC
方法openSendVC
一个新的控制器,但viewWillDisappear
(的第一个viewController)不被调用。
这是正确的行为。 以下是关于viewWillDisappear:
的摘录viewWillDisappear:
从UIViewController API文档 :
响应从视图层次结构中删除的视图,调用此方法。 在视图被实际删除之前以及configuration任何animation之前调用此方法。
呈现一个新的视图控制器,以便它隐藏另一个视图控制器不视为视图消失 – 仅实际上从视图层次结构中删除(例如,像popViewControllerAnimated:
。