IOS页面(控制器之间)传值之Block
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IOS页面(控制器之间)传值之Block相关的知识,希望对你有一定的参考价值。
B要传值给A
1.控制器B中要有一个Block:
typedef void (^MyBlock)(NSString* str1,NSString* str2);
str1和str2里存放着要传递的参数
2.还要有一个以Block为参数的方法
-(void)chuanzhi:(MyBlock)block{
block(self.textFiled1.text,self.textFiled2.text);
block(self.textFiled1.text,self.textFiled2.text);
}
这样self.textFiled1.text,self.textFiled2.text就可以作为参数进行传递了
3.在控制器A中调用这个chuanzhi方法
(1) 导入控制器A的头文件 #import "twoViewController.h"
(2) 创建控制器A的对象,用来调用这个chuanzhi方法 twoViewController* twoVC = [[twoViewController alloc]init];
(3)在控制器A页面将要出现的时候调用这个chuanzhi方法,完成传值。
//页面将要出现
-(void)viewWillAppear:(BOOL)animated{
//在页面即将出现的时候调用
[twoVC chuanzhi:^(NSString *str1, NSString *str2) {
//获得参数
self.textFiled1.text = str1;
self.textFiled2.text = str2;
}];
-(void)viewWillAppear:(BOOL)animated{
//在页面即将出现的时候调用
[twoVC chuanzhi:^(NSString *str1, NSString *str2) {
//获得参数
self.textFiled1.text = str1;
self.textFiled2.text = str2;
}];
}
以上是关于IOS页面(控制器之间)传值之Block的主要内容,如果未能解决你的问题,请参考以下文章
iOS 页面间几种传值方式(属性,代理,block,单例,通知)