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);
}
这样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;
       
    }];
   
}

以上是关于IOS页面(控制器之间)传值之Block的主要内容,如果未能解决你的问题,请参考以下文章

iOS 页面间几种传值方式(属性,代理,block,单例,通知)

iOS 页面间几种传值方式(属性,代理,block,单例,通知)

控制器之间传值,逆传

ios 为啥model传值之后视图会消失

iOS开发常用传值方式的比较

[iOS开发]多界面传值之代理传值