標籤:
#import "TestViewController.h"#import "OneViewController.h"
在TextViewController寫入點擊事件:
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ [self click];}
- (void)click{ OneViewController * vc = [OneViewController new]; [self presentViewController:vc animated:YES completion:nil]; NSLog(@"%@",NSStringFromClass([self.presentationController class])); NSLog(@"%@",NSStringFromClass([self.presentedViewController class])); NSLog(@"%@",NSStringFromClass([self.presentingViewController class])); NSLog(@"%@",NSStringFromClass([vc.presentationController class])); NSLog(@"%@",NSStringFromClass([vc.presentedViewController class])); NSLog(@"%@",NSStringFromClass([vc.presentingViewController class])); }
列印結果:
2015-10-07 11:49:38.933 ceshi[2610:61561] _UIFullscreenPresentationController2015-10-07 11:49:38.933 ceshi[2610:61561] OneViewController2015-10-07 11:49:38.933 ceshi[2610:61561] (null)2015-10-07 11:49:38.934 ceshi[2610:61561] _UIFullscreenPresentationController2015-10-07 11:49:38.934 ceshi[2610:61561] (null)2015-10-07 11:49:38.934 ceshi[2610:61561] TestViewController
在OneViewController的ViewDidAppear寫入:
- (void)viewDidAppear:(BOOL)animated{ NSLog(@"%@",NSStringFromClass([self.presentationController class])); NSLog(@"%@",NSStringFromClass([self.presentedViewController class])); NSLog(@"%@",NSStringFromClass([self.presentingViewController class])); }
列印結果:
2015-10-07 11:49:39.437 ceshi[2610:61561] _UIFullscreenPresentationController2015-10-07 11:49:39.437 ceshi[2610:61561] (null)2015-10-07 11:49:39.437 ceshi[2610:61561] TestViewController
總結:
presented 和 presenting 都是相對於當前UIViewController自己的。
我的理解,presented就是當前UIViewController有權利彈出的VC對象,presenting就是把當前UIViewController給彈出的對象。
我再理解了一下,presented就是當前UIViewController的兒子
presenting就是當前UIViewController的老子
以上都是我的理解,希望前輩指點
UIViewController 的 presentedViewController 和 presentingViewController