标签:
#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] _UIFullscreenPresentationController 2015-10-07 11:49:38.933 ceshi[2610:61561] OneViewController 2015-10-07 11:49:38.933 ceshi[2610:61561] (null) 2015-10-07 11:49:38.934 ceshi[2610:61561] _UIFullscreenPresentationController 2015-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] _UIFullscreenPresentationController 2015-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
标签:
原文地址:http://www.cnblogs.com/R0SS/p/4858480.html