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

#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. 详解一个自己原创的正则匹配IP的表达式

    这里给大家详细讲解一下一个匹配IP地址的正则表达式, 有关正则方面的知识,会在详细的讲解中提到. 在讲解之前,我先给大家介绍一下,ip地址的生成规则. IP地址,是由32位数字二进制转为四个十进制的字 ...

  2. 使用T4模板生成代码的学习

    之前做项目使用的都是Db First,直接在项目中添加Entity Framework,使用T4模板(T4模板引擎之基础入门)生成DAL BLL层等(T4模板是一个同事给的,也没有仔细研究,代码如下: ...

  3. C++ 中的sort排序用法

    STL中就自带了排序函数sortsort 对给定区间所有元素进行排序 要使用此函数只需用#include <algorithm> sort即可使用,语法描述为:sort(begin,end ...

  4. redhat note

    1,iptables -I INPUT 5 -m state --state NEW -p tcp --dport 80 -j ACCEPT

  5. ANE 从入门到精通 --- 一键打包ANE

    每次都要执行好几步才能编译出ANE很是麻烦,使用如下脚本 一键完成复杂的流程 REM 好压HaoZipC文件所在的位置,7Zip,WinRAR等均可 Set Zip=D:\"Program ...

  6. android 中获取视频文件的缩略图(非原创)

    在android中获取视频文件的缩略图有三种方法: 1.从媒体库中查询 2. android 2.2以后使用ThumbnailUtils类获取 3.调用jni文件,实现MediaMetadataRet ...

  7. 将abc的全排列输出

    #include "iostream" using namespace std; void swap(char a[],int i,int j){ char temp; temp= ...

  8. Add a Syscall

    Add a syscall to kernel and replace linux kernel of RPi. Prepare: Cross compiler Linux Kernel for RP ...

  9. c#-快速排序-算法

    快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists). 步骤为: 1.从数列中挑出一个元素,称为 "基准"(p ...

  10. python生成器实现杨辉三角

    def triangels(): """ 杨辉三角 """ lst = [1] n_count = 2 # 下一行列表长度 while Tr ...