iOS 使用Block进行逆传值
跟通知一样也是两个控制器,然后代码创建控件直接上代码
#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进行逆传值的更多相关文章
- iOS Block界面反向传值
在上篇博客 <iOS Block简介> 中,侧重解析了 iOS Block的概念等,本文将侧重于它们在开发中的应用. Block是iOS4.0+ 和Mac OS X 10.6+ 引进的对C ...
- iOS利用通知逆传值
直接创建两个控制器,点击跳转第二个界面,然后点击按钮进行传值 #import "ViewController.h" #import "TWOOViewController ...
- ios开发 block语句块
ios开发 block语句块 1.block 理解为匿名函数 2.block变量的定义 //定义block变量,^表示定义block //技巧:函数名左右加括号,在函数名前面在加^ void (^bl ...
- iOS中block的用法 以及和函数用法的区别
ios中block的用法和函数的用法大致相同 但是block的用法的灵活性更高: 不带参数的block: void ^(MyBlock)() = ^{}; 调用的时候 MyBlock(); 带参数的 ...
- iOS开发--Block
iOS开发--Block 1.什么是Block,block 的作用 ui开发和网络常见功能实现回调,按钮的事件处理方法是回调方法以及网络下载后的回调处理 (1)按钮 target-action 一 ...
- iOS之block
1. Block的声明和线程安全Block属性的声明,首先需要用copy修饰符,因为只有copy后的Block才会在堆中,栈中的Block的生命周期是和栈绑定的,可以参考之前的文章(iOS: 非ARC ...
- iOS开发——Block详解
iOS开发--Block详解 1. Block是什么 代码块 匿名函数 闭包--能够读取其他函数内部变量的函数 函数变量 实现基于指针和函数指针 实现回调的机制 Block是一个非常有特色的语法,它可 ...
- iOS中Block介绍(一)基础
ios开发block的使用指南,以及深入理解block的内存管理,也适用于osx开发.讨论范围:block的使用,内存管理,内部实现.不包含的内容:gc arc下的block内存,block在c++中 ...
- iOS中Block介绍 基础
ios开发block的使用指南,以及深入理解block的内存管理,也适用于osx开发.讨论范围:block的使用,内存管理,内部实现.不包含的内容:gc arc下的block内存,block在c++中 ...
随机推荐
- Uiautomator ——API详解(转载http://www.cnblogs.com/by-dream/p/4921701.html)
转载来源: 简单的例子 以一个简单的例子开始吧.我们完成一个 " 打开QQ,进入QQ空间,然后退出 " 的case. 代码如下: package QQ; import java.i ...
- Linux 设置定时任务crontab命令
1. crontab命令概念 crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行. cron 系统调度进程. 可以使 ...
- zstack 离线升级1.1到 1.2 rc
说明 zstack版本1.1是通过离线安装的. 升级过程 1 挂载下一个版本的zstack的社区版本centos镜像 ZStack-Community-x86_64-DVD-1.2.0.iso mkd ...
- 《量化投资:以MATLAB为工具》连载(2)基础篇-N分钟学会MATLAB(中)
http://www.matlabsky.com/thread-43937-1-1.html <量化投资:以MATLAB为工具>连载(3)基础篇-N分钟学会MATLAB(下) ...
- Java类WebServer及中间件拿webshell方法总结
0.序 原文名称:Tomcat.Weblogic.JBoss.GlassFish.Resin.Websphere弱口令及拿webshell方法总结 原文from:http://www.hack80.c ...
- MongoDB win安装后无法远程连接访问
mongoDB安装后无法远程连接访问,原因是端口没有开放允许连接的权限 开启允许连接的权限: 管理工具-高级win防火墙
- 获取设备的mac地址和IP地址(android6.0以上专用)
/** * 获取设备HardwareAddress地址 * @return */public static String getMachineHardwareAddress(){ Enumeratio ...
- jsonp
一次关于JSONP的小实验与总结 前言: 今天,无意间看到自己某个文件夹下有个JSONP的东西.慢慢回忆起,这个东西是之前想写的一个demo,也不知道是多久以前了,但是不知道怎么的,给忘那边了.那 ...
- c#制作一个屏幕保护程序
代码已上传github 实现思路:纯黑窗体去边框,加入标签. 使用Timmer让windows 10标签运动.限制标签的行为. 代码: int deltX = 10; int deltY ...
- 【003:jsoncpp的简单使用】
#include <json/json.h> #include <iostream> #include <string> using namespace std; ...