@interface QWViewController : UIViewController

@property(nonatomic,strong)UILabel *label;

@property(nonatomic,strong)UITextField *textField;

@end

#import "QWViewController.h"

#import "QWViewControllerTwo.h"

@interface QWViewController ()

@end

@implementation QWViewController

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view.

UILabel *label=[[UILabel alloc]initWithFrame:CGRectMake(100, 100, 100, 50)];

label.backgroundColor=[UIColor blueColor];

self.label=label;

[self.view addSubview:label];

UITextField *textField=[[UITextField alloc]initWithFrame:CGRectMake(100, 200, 100, 50)];

textField.backgroundColor=[UIColor yellowColor];

self.textField=textField;

[self.view addSubview:textField];

UIButton *button=[UIButton buttonWithType:UIButtonTypeCustom];

button.frame=CGRectMake(100, 300, 100, 50);

button.backgroundColor=[UIColor blackColor];

[button setTitle:@"jump" forState:UIControlStateNormal];

[button addTarget:self action:@selector(doClicked) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:button];

}

-(void)doClicked{

QWViewControllerTwo *ViewControllerTwo=[[QWViewControllerTwo alloc]init];

ViewControllerTwo.labelText=self.textField.text;//顺传值

//[ViewControllerTwo.label setText:self.textField.text];//注意:这样传值是不对的。

//逆向传值回来

[ViewControllerTwo returnText:^(NSString *showText) {

self.label.text=showText;

}];

[self.navigationController pushViewController:ViewControllerTwo animated:YES];

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

@end

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

#import <UIKit/UIKit.h>

typedef void(^ReturnTextBlock) (NSString *showText);

@interface QWViewControllerTwo : UIViewController

@property(nonatomic,copy)NSString *labelText;

@property(nonatomic,strong)UILabel *label;

@property(nonatomic,strong)UITextField *textField;

@property(nonatomic,copy)ReturnTextBlock returnTextBlock;

-(void)returnText:(ReturnTextBlock)block;

@end

#import "QWViewControllerTwo.h"

@interface QWViewControllerTwo ()

@end

@implementation QWViewControllerTwo

-(UILabel *)label{

if (_label==nil) {

_label=[[UILabel alloc]initWithFrame:CGRectMake(100, 100, 100, 50)];

}

return _label;

}

-(UITextField *)textField{

if (_textField==nil) {

_textField=[[UITextField alloc]initWithFrame:CGRectMake(100, 200, 100, 50)];

}

return _textField;

}

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view.

UILabel *label=[[UILabel alloc]initWithFrame:CGRectMake(100, 100, 100, 50)];

label.backgroundColor=[UIColor yellowColor];

label.text=self.labelText;

self.label=label;

[self.view addSubview:self.label];

UITextField *textField=[[UITextField alloc]initWithFrame:CGRectMake(100, 200, 100, 50)];

textField.backgroundColor=[UIColor yellowColor];

self.textField=textField;

[self.view addSubview:textField];

//创建返回按钮

UIButton *backBtn=[UIButton buttonWithType:UIButtonTypeCustom];

[backBtn addTarget:self action:@selector(goBack) forControlEvents:UIControlEventTouchUpInside];

[backBtn setTitle:@"back" forState:UIControlStateNormal];

}

-(void)goBack{

[self.navigationController popViewControllerAnimated:YES];

}

//将上一个控制器传过来的block保存在本控制器中,在合适的时候调用

-(void)returnText:(ReturnTextBlock)block{

self.returnTextBlock=block;

}

//在视图将要消失的时候调用本类的block

-(void)viewWillDisappear:(BOOL)animated{

if (self.returnTextBlock !=nil) {

self.returnTextBlock(self.textField.text);//实现是在之前控制器中

}

}

@end

实现效果:

IOS传值之Block传值(二)的更多相关文章

  1. IOS笔记047-代理传值和block传值

    在两个不同的控制器之间传递数据,可以使用代理传值或者block传值. 例子是一个简单通讯录. 主界面如下: 添加联系人界面 查看/编辑联系人界面:默认是查看模式,点击编辑后进入编辑模式 编辑模式 数据 ...

  2. OS笔记047代理传值和block传值

    在两个不同的控制器之间传递数据,可以使用代理传值或者block传值. 例子是一个简单通讯录. 主界面如下: 添加联系人界面 查看/编辑联系人界面:默认是查看模式,点击编辑后进入编辑模式 编辑模式 数据 ...

  3. 属性传值,协议传值,block传值,单例传值四种界面传值方式

    一.属性传值 对于属性传值而言,相对于其它的三种 方法来说,是最基础,最简单的一种 方法,但,属性传值 有很大的局限性,因为是适用于第一个界面向第二个界面传 值,第二个向第三个界面传值等等.N界面向N ...

  4. iOS传值之block传值(一)

    ios4.0系统已开始支持block,在编程过程中,blocks被Obj-C看成是对象,它封装了一段代码,这段代码可以在任何时候执行.Blocks可以作为函数参数或者函数的返回值,而其本身又可以带输入 ...

  5. iOS中使用block传值

    转自:http://blog.sina.com.cn/s/blog_60b45f230100yiaf.html 用此方法传值可以替代委托了.具体例子: MainView.h #import <U ...

  6. iOS 页面间传值 之 单例传值 , block 传值

    ios 页面间传值有许多,前边已经分享过属性传值和代理传值,今天主要说一下单例传值和 block 传值 单例传值:单例模式一种常用的开发的模式,单例因为在整个程序中无论在何时初始化对象,获取到的都是同 ...

  7. ios常见的页面传值方式

    iOS页面间的传值细分有很多种,基本的传值方式有三种:委托Delegate传值.通知NSNotification传值.Block传值,其他在项目中可能会遇到的还有:UserDefault或文件方式传值 ...

  8. iOS的四种传值方式

    传值有四种方法 : 1. 属性传值 2. 单例传值 3. 代理传值 4. block传值     一.属性传值   (前-->后) 1. 后面的界面定义一个属性  存放前一个界面传过来的值    ...

  9. iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)

    iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)   使用Block的地方很多,其中传值只是其中的一小部分,下面介绍Block在两个界面之间的传值: 先说一下思想: ...

随机推荐

  1. javaWEB总结(8):自定义GenericServlet

    前言: 项目的实际应用中,我们往往为了方便去继承GenericServlet类,而不是去实现Servlet接口,是什么原因呢?下面进行简单的实践操作. 一. 准备工作 1.首先看GenericServ ...

  2. RPC学习

    之前有一篇文章,说了RPC的内容: http://www.cnblogs.com/charlesblc/p/6214391.html 如果有一种方式能让我们像调用本地服务一样调用远程服务,而让调用者对 ...

  3. iOS开发讯飞语音的集成

    1.进入官网注册账号,登陆,注册,应用. 2,下载sdk  导入系统库. 3,关闭bitcode 4,初始化讯飞语音. NSString * initString = [[NSString alloc ...

  4. 2016年团体程序设计天梯赛-决赛 L1-8. Left-pad(20)

    根据新浪微博上的消息,有一位开发者不满NPM(Node Package Manager)的做法,收回了自己的开源代码,其中包括一个叫left-pad的模块,就是这个模块把javascript里面的Re ...

  5. JS复习:第十、十一章

    第十章 NodeList是一种类数组对象,用于保存一组有序的节点,可以通过位置来访问这些节点,但它并不是Array实例,将其转化为数组的方法: function converToArray(nodes ...

  6. 使用jQuery的hover事件在IE中不停闪动的解决方法

    在使用jQuery的hover事件时,经常会因为鼠标滑动过快导致菜单不停闪动的情况,相信很多朋友都遇到过自己做的纵向下拉菜单不停的收缩,非常的讨厌.今天在给一个网站设计菜单时也遇到了这个情况,结果在百 ...

  7. 网页弹出窗口工具推荐之jqmodal

    各种在jquery基础上实现的弹出窗口,有详细的开发说明文档.在项目中快速实现网页中弹出窗口的需求.基本能满足各种弹出窗口的需求 其官方网址如下http://jquery.iceburg.net/jq ...

  8. poj_1743_Musical Theme(后缀数组)

    题目链接:poj_1743_Musical Theme 题意: 给你一串数字,让你找最长的变化相同不重叠的子串,至少长度为5 题解: 处理数据后用后缀数组加二分答案,然后用height数组check答 ...

  9. Java 中值传递和引用传递 区分

    详细参见  http://blog.csdn.net/zzp_403184692/article/details/8184751

  10. LNK2019解决思路

    虽然官网给出了很多可能的原因,最可能的原因还是因为缺少某个库文件.最近解决的一个为例总结一下思路 Winmm.lib; ad_win32.obj : error LNK2019: unresolved ...