#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]));

}

打印结果:

-- :::] _UIFullscreenPresentationController
-- :::] OneViewController
-- :::] (null)
-- :::] _UIFullscreenPresentationController
-- :::] (null)
-- :::] TestViewController

在OneViewController的ViewDidAppear写入:

- (void)viewDidAppear:(BOOL)animated
{

    NSLog(@"%@",NSStringFromClass([self.presentationController class]));
    NSLog(@"%@",NSStringFromClass([self.presentedViewController class]));
    NSLog(@"%@",NSStringFromClass([self.presentingViewController class]));

}

打印结果:

-- :::] _UIFullscreenPresentationController
-- :::] (null)
-- :::] TestViewController

总结:

presented 和 presenting 都是相对于当前UIViewController自己的。

我的理解,presented就是当前UIViewController有权利弹出的VC对象,presenting就是把当前UIViewController给弹出的对象。

我再理解了一下,presented就是当前UIViewController的儿子

        presenting就是当前UIViewController的老子

以上都是我的理解,希望前辈指点

UIViewController 的 presentedViewController 和 presentingViewController的更多相关文章

  1. presentedViewController 和 presentingViewController 以及 dismissViewControllerAnimated 的使用

    在日常的开发中,多控制器之间的跳转除了使用push的方式,还可以使用 present的方式,present控制器时,就避免不了使用 presentedViewController.presenting ...

  2. iOS presentedViewController和presentingViewController的区别

    当我们用present进行界面跳转时,会涉及到一个传向关系. 比如:A -> B    界面A跳转界面B A.presentedViewControlle = B B.presentingVie ...

  3. presentingViewController、presentedViewController区别

    解释两个属性:presentingViewController 和 presentedViewController A----(present)-----B----(present)-----C 1. ...

  4. 你真的了解UIViewController跳转吗?

    一:UIViewController模态跳转 //展示模态视图 - (void)presentViewController:(UIViewController *)viewControllerToPr ...

  5. [转]iOS之浅谈纯代码控制UIViewController视图控制器跳转界面的几种方法

    参考:http://www.mamicode.com/info-detail-469709.html 一.最普通的视图控制器UIViewContoller 一个普通的视图控制器一般只有模态跳转的功能( ...

  6. iOS之浅谈纯代码控制UIViewController视图控制器跳转界面的几种方法

    .最普通的视图控制器UIViewContoller 一个普通的视图控制器一般只有模态跳转的功能(ipad我不了解除外,这里只说iPhone),这个方法是所有视图控制器对象都可以用的,而实现这种功能,有 ...

  7. UIViewController之间的相互跳转

    一.最普通的视图控制器UIViewContoller 一个普通的视图控制器一般只有模态跳转的功能(ipad我不了解除外,这里只说iPhone),这个方法是所有视图控制器对象都可以用的,而实现这种功能, ...

  8. Swift开发小技巧--自定义转场动画

    自定义转场动画 个人理解为重写了被弹出控制器的modal样式,根据自己的样式来显示modal出来的控制器 例:presentViewController(aVC, animated: true, co ...

  9. iOS 视图控制器转场详解

    iOS 视图控制器转场详解 前言的前言 唐巧前辈在微信公众号「iOSDevTips」以及其博客上推送了我的文章后,我的 Github 各项指标有了大幅度的增长,多谢唐巧前辈的推荐.有些人问我相关的问题 ...

随机推荐

  1. ASP.NET 系列:单元测试之SmtpClient

    使用SmtpClient发送Email时,我们可以创建ISmtpClient接口和SmtpClientWrapper适配类,在单元测试中对ISmtpClient进行Mock或自定义FackeSmtpC ...

  2. jQuery升级踩坑大全

    jQuery升级踩坑大全 背景 jQuery想必各个web工程师都再熟悉不过了,不过现如今很多网站还采用了很古老的jQuery版本.其实如果早期版本使用不当,可能会有DOMXSS漏洞,非常建议升级到j ...

  3. learning to rank

    Learning to Rank入门小结 + 漫谈 Learning to Rank入门小结 Table of Contents 1 前言 2 LTR流程 3 训练数据的获取4 特征抽取 3.1 人工 ...

  4. CXF集成Spring实现webservice的发布与请求

    CXF集成Spring实现webservice的发布(服务端) 目录结构: 主要代码: package com.cxf.spring.pojo; public class User { int id ...

  5. Android-动画简介

    Android中动画分为3种: ween Animation:通过对场景里的对象不断做图像变换(平移.缩放.旋转)产生动画效果,即是一种渐变动画: 也称View动画:也叫渐变动画,针对View的动画, ...

  6. iOS开发--QQ音乐练习,后台播放和锁屏界面

    一.设置后台播放 首先允许程序后台播放 代码实现 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOpti ...

  7. FastFDFS_Jave客户端调用(亲测可用)

    一.配置文件(fdfs_client.properties) 1 2 3 4 5 6 7 8 9 10 connect_timeout = 30 network_timeout = 60 charse ...

  8. ArcGIS 帮助(10.2、10.2.1 和 10.2.2)收集

    帮助首页 [Oracle基础] 快速浏览:Oracle 地理数据库 什么是 Oracle Spatial? 设置到 Oracle 的连接 存储在 Oracle 地理数据库中的系统表 结合企业级地理数据 ...

  9. Maven插件maven-surefire-plugin

    插件官方文档:maven-surefire-plugin 1.surefire plugin的作用surefire 插件用来在maven构建生命周期的test phase执行一个应用的单元测试. 它会 ...

  10. bootstrap-fileinput简单完整列子

    文件夹结构 版本都是3.x <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http ...