UIViewController的presentedViewController,presentingViewController和parentViewController三个属性
presentedViewController:The view controller that is presented by this view controlller(read-only),被本视图控制器present出来的的视图控制器(只读)
presentingViewController:The view controller that presented this view controller. (read-only),present出来本视图控制器的视图控制器(只读)
parentViewController:The parent view controller of the recipient(容器). (read-only)
有ViewControllerA和ViewControllerB,在A里使用presentViewController:animated:completion: 方法present视图控制器B
ViewControllerB *viewb = [[ViewControllerB alloc] init];
[self presentViewController:viewb animated:YES completion:nil];
NSLog(@"self.presentedViewController: %@", self.presentedViewController);
NSLog(@"self.presentingViewController: %@", self.presentingViewController);
NSLog(@"self.parentViewController: %@", self.parentViewController);
NSLog(@"======================================================================");
NSLog(@"viewb.presentedViewController: %@", viewb.presentedViewController);
NSLog(@"viewb.presentingViewController: %@", viewb.presentingViewController);
NSLog(@"viewb.parentViewController: %@", viewb.parentViewController);
打印结果为:
2015-07-30 10:38:45.923 PresentDemo[1518:85346] self.presentedViewController: <ViewControllerB: 0x7ff6c974a440>
2015-07-30 10:38:45.924 PresentDemo[1518:85346] self.presentingViewController: (null)
2015-07-30 10:38:45.924 PresentDemo[1518:85346] self.parentViewController: (null)
2015-07-30 10:38:45.924 PresentDemo[1518:85346] ======================================================================
2015-07-30 10:38:45.924 PresentDemo[1518:85346] viewb.presentedViewController: (null)
2015-07-30 10:38:45.924 PresentDemo[1518:85346] viewb.presentingViewController: <ViewController: 0x7ff6c9729e40>
2015-07-30 10:38:45.924 PresentDemo[1518:85346] viewb.parentViewController: (null)
视图控制器B被本视图控制器(A)present,所以A的presentedViewController是ViewControllerB,B的presentingViewController是ViewController(即A)