跟通知一样也是两个控制器,然后代码创建控件直接上代码

#import "ViewController.h"

#import "TwoViewController.h"

@interface ViewController ()

{

UIButton *_nextBtn;

UILabel *_showLabel;

}

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

[self show];

}

-(void)show{

_nextBtn = [[UIButton alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];

[_nextBtn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

[_nextBtn setTitle:@"下一个" forState:UIControlStateNormal];

[_nextBtn addTarget:self action:@selector(nextBtnClick:) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:_nextBtn];

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

[_showLabel setBackgroundColor:[UIColor greenColor]];

[_showLabel setTextColor:[UIColor redColor]];

[self.view addSubview:_showLabel];

}

-(void)nextBtnClick:(UIButton *)nextBtnClick{

TwoViewController * two = [[TwoViewController alloc]init];

two.block = ^(NSString * str){

_showLabel.text = str;

};

[self presentViewController:two animated:YES completion:nil];

}

在TwoViewController.h中

#import <UIKit/UIKit.h>

typedef void (^MyBlock)(NSString *);

@interface TwoViewController : UIViewController

@property(nonatomic,copy)MyBlock block;

@end

在TwoViewController.m中

#import "TwoViewController.h"

@interface TwoViewController ()

{

UIButton *_backBtn;

UITextField *_textField;

}

@end

@implementation TwoViewController

- (void)viewDidLoad {

[super viewDidLoad];

self.view.backgroundColor = [UIColor blueColor];

[self shoulabel];

}

-(void)shoulabel{

_backBtn = [[UIButton alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];

_backBtn.backgroundColor = [UIColor redColor];

[_backBtn setTitle:@"shang" forState:UIControlStateNormal];

[_backBtn addTarget:self action:@selector(shangBtnClick:) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:_backBtn];

_textField = [[UITextField alloc]initWithFrame:CGRectMake(100, 400, 250, 35)];

_textField.backgroundColor = [UIColor yellowColor];

[self.view addSubview: _textField];

}

-(void)shangBtnClick:(UIButton *)shangBtn{

[self dismissViewControllerAnimated:YES completion:^{

if (self.block) {

self.block(_textField.text);

}

}];

}

这样就进行了简单的传值

iOS 使用Block进行逆传值的更多相关文章

  1. iOS Block界面反向传值

    在上篇博客 <iOS Block简介> 中,侧重解析了 iOS Block的概念等,本文将侧重于它们在开发中的应用. Block是iOS4.0+ 和Mac OS X 10.6+ 引进的对C ...

  2. iOS利用通知逆传值

    直接创建两个控制器,点击跳转第二个界面,然后点击按钮进行传值 #import "ViewController.h" #import "TWOOViewController ...

  3. ios开发 block语句块

    ios开发 block语句块 1.block 理解为匿名函数 2.block变量的定义 //定义block变量,^表示定义block //技巧:函数名左右加括号,在函数名前面在加^ void (^bl ...

  4. iOS中block的用法 以及和函数用法的区别

    ios中block的用法和函数的用法大致相同 但是block的用法的灵活性更高: 不带参数的block: void ^(MyBlock)() = ^{}; 调用的时候  MyBlock(); 带参数的 ...

  5. iOS开发--Block

    iOS开发--Block 1.什么是Block,block 的作用 ui开发和网络常见功能实现回调,按钮的事件处理方法是回调方法以及网络下载后的回调处理 (1)按钮 target-action   一 ...

  6. iOS之block

    1. Block的声明和线程安全Block属性的声明,首先需要用copy修饰符,因为只有copy后的Block才会在堆中,栈中的Block的生命周期是和栈绑定的,可以参考之前的文章(iOS: 非ARC ...

  7. iOS开发——Block详解

    iOS开发--Block详解 1. Block是什么 代码块 匿名函数 闭包--能够读取其他函数内部变量的函数 函数变量 实现基于指针和函数指针 实现回调的机制 Block是一个非常有特色的语法,它可 ...

  8. iOS中Block介绍(一)基础

    ios开发block的使用指南,以及深入理解block的内存管理,也适用于osx开发.讨论范围:block的使用,内存管理,内部实现.不包含的内容:gc arc下的block内存,block在c++中 ...

  9. iOS中Block介绍 基础

    ios开发block的使用指南,以及深入理解block的内存管理,也适用于osx开发.讨论范围:block的使用,内存管理,内部实现.不包含的内容:gc arc下的block内存,block在c++中 ...

随机推荐

  1. JAVASE02-Unit06: 文件操作——File 、 文件操作—— RandomAccessFile

    Unit06: 文件操作--File . 文件操作-- RandomAccessFile java.io.FileFile的每一个实例是用来表示文件系统中的一个文件或目录 package day06; ...

  2. java://Comparator、Comparable的用法(按照要求将map集合的键值对进行顺序输出)

    import java.util.*; public class Person implements Comparable<Person>//使Person的属性具有比较性 { priva ...

  3. .NET中Redis安装部署及使用方法简介附->开源Redis操作辅助类

    Redis是一个用的比较广泛的Key/Value的内存数据库,新浪微博.Github.StackOverflow 等大型应用中都用其作为缓存,Redis的官网为http://redis.io/. Re ...

  4. leetcode 155

    题目描述: Design a stack that supports push, pop, top, and retrieving the minimum element in constant ti ...

  5. 开始学习c语言

    学习c语言的第一篇博客,心里的感觉说不出来,不知道能不能坚持下去,我是一名工作了差不多2年的phper,其实我本来是想学习数据结构和算法的,但是尼玛这年头那些书的例子都不是php,动不动就是c,jav ...

  6. poj 2393 Yogurt factory

    http://poj.org/problem?id=2393 Yogurt factory Time Limit: 1000MS   Memory Limit: 65536K Total Submis ...

  7. HDU-1233 还是畅通工程

    Problem Description 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能 ...

  8. js执行环境的深入理解

    第一个例子中 :之所以每个函数都返回不同的值的原因 有2点 (简写如下文) 就是[SCOPE]内部属性,函数可能拥有相同的父作用域时,多个函数引用同一个[SCOPE]属性,所以return i的值还是 ...

  9. getStyle(obj, attr)兼容获取css

    设置元素(element)的css属性值可以用element的style属性,dom.style.attr  这样或取得到的值大多数是undefined:何解? dom.style.attr  是用来 ...

  10. UVA 11624 BFS的妙用

    题意: 迷宫里起火了,有若干个障碍物,有多个起火点,起火点每经过一个时间间隔就向它的上下左右相邻的格子扩散. 有个倒霉的人好像叫做“Joe”,他要逃出来,他每次可以向上下左右任意移动一格,但是即要避开 ...