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

#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. :active 为什么在ios上失效

    :active是针对鼠标,而手机上是没有鼠标,而是touchstart,所以早成了ios上不兼容 解决方法是: window.onload = function(){ document.body.ad ...

  2. varnish4.0 流程图以及说明

    varnish 中的内置变量 req repos client server bereq beresp bereq bereq.http.HEADER 由varnish发往backend server ...

  3. l创建Excel文件

    最近的项目中遇到需要将List<Map<String,String>>存储到Excel文件中,为满足此需求设计实现了如下函数: /** * 将MapList转化为Excel文件 ...

  4. swift 判断字符串长度

    projectName.lengthOfBytes(using: String.Encoding(rawValue: String.Encoding.utf16.rawValue)) > 0

  5. python numpy包

    在numpy包中我们可以用数组来表示向量,矩阵和高阶数据结构 首先导入numpy包: from numpy import* 初始化numpy数组有多种方式,比如说 1.python列表或元祖 2.使用 ...

  6. 2-MySQL数据库编码uft-8

    mysql> show variables like 'character%'; mysql> show variables like 'collation%'; mysql> st ...

  7. Learning From Data 第一章总结

    之前上了台大的机器学习基石课程,里面用的教材是<Learning from data>,最近看了看觉得不错,打算深入看下去,内容上和台大的课程差不太多,但是有些点讲的更深入,想了解课程里面 ...

  8. 在windows通过visual studio远程调试linux mono程序

    本文参考文章 https://github.com/techl/MonoRemoteDebugger 1.通过连接https://github.com/techl/MonoRemoteDebugger ...

  9. CentOS手动编译安装gcc

    最近尝试了fedora.ubuntu.mint.debian.opensuse等多种linux发行版,与CentOS比较之后还是感觉之前用的CentOS比较熟悉,比较习惯.现在CentOS的最新版本为 ...

  10. app加固

    为什么要加固APP? 答:因为黑客通过反编译APK得到源码后,会在应用中插入代码,获取利益,比如添加广告,盗取用户账号.密码,后台定制活动等.   反编译的方法? 反编译是指apk文件通过反编译工具( ...