三种传值:属性传值 block传值 以及 代理传值 (这里我用前面的页面和后面的)来表示两个控制器:LoginViewController和RegisterViewController

建立两个控制器:LoginViewController(loginViewController)和RegisterViewController(registerViewController),

  1.在LoginViewController上建立一个TextField(loginTextField)和一个UIButton(loginButton), loginTextField指向.h文件, 建立一个属性,  loginButton指向registerViewController类型是show;

  2.rregisterViewController中建立一个TextField(registerTextField) 两个button (blockButton, delegateButton),  registerTextField指向.h文件, 建立一个属性, 两个button分别指向.m文件建立自己的方法sendValWithBlock和sendValWithDelegate;

1.属性传值

  在registerViewController.h中定义一个value属性, 用来传值. 在LoginViewController中的prepareForSegue方法中的代码是  

 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
RegisterViewController* registerVC = segue.destinationViewController; // 1.属性传值
NSString* str = self.loginTextField.text;
if ([registerVC respondsToSelector:@selector(setValue:)]) {
[registerVC setValue:str forKey:@"value"];
} // 2.block传值
registerVC.sendValue = ^(NSString * obj){
_loginTextField.text = obj;
}; // 3.代理传值
registerVC.delegate = self; }
#pragma mark 实现代理方法
- (void)sendValueWithDelegate:(id)id
{
self.loginTextField.text = id;
}

  上面是三种传值方法的代码, 我们现在只看第一种, 我们初始化一个registerViewController对象, 来对他的value属性进行赋值, 然后再RegisterViewController中的registerTextField中显示他所传的值(这里我传的是loginTextField输入框里面的值)

  然后我再registerViewController里面的viewdidload方法里面接收: _registerTextField.text = _value;

2.block传值

block传值的原理(个人见解):首先你要明白的是两个控制器的生命周期, 第一个页面也就是登陆页面, 他的生命周期是整个过程, 而登陆页面的生命周期是在我们点击第一个页面的登陆按钮开始, 到第二个页面退出结束的. 而我们把block有声明 实现和调用三个阶段, 我们把它的三个阶段分开了, 这是基于block一个特性:!!!!block的内部在实现的时候是不运行的, 只有在调用的时候才会运行. (没时间了)==吧

  

  

storyboard中的三种传值的更多相关文章

  1. Java三大框架之——Hibernate中的三种数据持久状态和缓存机制

    Hibernate中的三种状态   瞬时状态:刚创建的对象还没有被Session持久化.缓存中不存在这个对象的数据并且数据库中没有这个对象对应的数据为瞬时状态这个时候是没有OID. 持久状态:对象经过 ...

  2. Asp.Net中的三种分页方式

    Asp.Net中的三种分页方式 通常分页有3种方法,分别是asp.net自带的数据显示空间如GridView等自带的分页,第三方分页控件如aspnetpager,存储过程分页等. 第一种:使用Grid ...

  3. httpClient中的三种超时设置小结

    httpClient中的三种超时设置小结   本文章给大家介绍一下关于Java中httpClient中的三种超时设置小结,希望此教程能给各位朋友带来帮助. ConnectTimeoutExceptio ...

  4. MySQL buffer pool中的三种链

    三种page.三种list.LRU控制调优 一.innodb buffer pool中的三种页 1.free page:从未用过的页 2.clean page:干净的页,数据页的数据和磁盘一致 3.d ...

  5. 研究分析JS中的三种逻辑语句

    JS中的三种逻辑语句:顺序.分支和循环语句. 一.顺序语句 代码规范如下:1. <script type="text/javascript"> var a = 10;  ...

  6. JavaScript中的三种弹出对话框

    学习过js的小伙伴会发现,我们在一些实例中用到了alert()方法.prompt()方法.prompt()方法,他们都是在屏幕上弹出一个对话框,并且在上面显示括号内的内容,使用这种方法使得页面的交互性 ...

  7. .net core 注入中的三种模式:Singleton、Scoped 和 Transient

    从上篇内容不如题的文章<.net core 并发下的线程安全问题>扩展认识.net core注入中的三种模式:Singleton.Scoped 和 Transient 我们都知道在 Sta ...

  8. java多线程中的三种特性

    java多线程中的三种特性 原子性(Atomicity) 原子性是指在一个操作中就是cpu不可以在中途暂停然后再调度,既不被中断操作,要不执行完成,要不就不执行. 如果一个操作时原子性的,那么多线程并 ...

  9. python中的三种输入方式

    python中的三种输入方式 python2.X python2.x中以下三个函数都支持: raw_input() input() sys.stdin.readline() raw_input( )将 ...

随机推荐

  1. [比较老的文章]三维渲染引擎 OGRE 与 OSG 的比较综述

    1 .引言随着计算机可视化.虚拟现实技术的飞速发展,人们对实时真实感渲染以及场景复杂度提出了更高的要求.传统的直接使用底层图形接口如OpenGL.DirectX开发图形应用的模式越来越暴露出开发复杂性 ...

  2. PHP之图片上传类(加了缩略图)

    有缩略图功能 但是 感觉不全面,而且有点问题,继续学习,将来以后修改下 <form action="<?php $_SERVER['PHP_SELF']; ?>" ...

  3. CSU 1597 薛XX后代的IQ

    Description 薛XX的低IQ是个令人头疼的问题,他的队友深受其害.幸运的是,薛XX非常有钱,所以他买了一些可以提高他的后代的IQ的药.这种药有三个属性,A,B和P.当薛XX使用这种药的时候, ...

  4. Network Wars-ZOJ2676最小割+01规划

    Time Limit: 5 Seconds Memory Limit: 32768 KB Special Judge Network of Byteland consists of n servers ...

  5. [ASM C/C++] C语言的main 函数

    C语言有两种可能的运行环境 1. 独立(freestanding) 在独立环境中,C程序执行不需要操作系统的支持,因此只具有最小的链接库能力. 2. 宿主(hosted) 在宿主的环境中,C程序会在操 ...

  6. 进军Linux

    大二的时候学习Java,学完Java SE之后就放弃了这条道路,踏上了嵌入式之路.那时候约定好,选择了DSP,从C2000开始学起,基础仅仅是会C51,有C语言和Java的基础.这几年随着项目的需求变 ...

  7. python 学习笔记十九 django深入学习四 cookie,session

    缓存 一个动态网站的基本权衡点就是,它是动态的. 每次用户请求一个页面,Web服务器将进行所有涵盖数据库查询到模版渲染到业务逻辑的请求,用来创建浏览者需要的页面.当程序访问量大时,耗时必然会更加明显, ...

  8. API Monitor v2.0 Alpha-r13 (32+64) 汉化版

    API Monitor v2.0 Alpha-r13 (32+64) 汉化版: 链接: https://pan.baidu.com/s/1jIx5znC 密码: 4538 本软件已最大化汉化,已经趋于 ...

  9. InstallShield 2015 LimitedEdition VS2012 覆盖安装

    转载:http://tieba.baidu.com/p/3596681127 1. 在General Information里,修改Product Version为新的版本号,此版本号应大于旧的版本号 ...

  10. Duiib 创建不规则窗口(转载)

    方法一: 转载:http://blog.csdn.net/chenlycly/article/details/46447297 转载:http://blog.csdn.net/harvic880925 ...