IOS学习第六篇——代码块(block)

来源:互联网 发布:服务器的8080端口 编辑:程序博客网 时间:2024/05/02 00:41

iOS 代码块

定义,借用一张图表示


1.代码块可以定义在类里面,也可以定义为变量,可以看作定义的一个函数,当调用代码块的时候,才会执行代码块里面的代码。

2.代码块重点作为 property 属性在两个页面传值

例子:第一个页面点击按钮,打开第二个页面,再第二个页面中,返回按钮,获取输入框的值,传递给第一个页面显示

第一个页面 (FirstViewController)  第二个页面(NextViewController)

第一个页面 (FirstViewController.m文件) 点击事件中

NextViewController *nextVC = [ [NextViewController alloc] init];

nextVC.backBlock = (void)(^backBlock )(NSString *str,NSString *str2){

[self comeBack:str];

}

第一个页面 (FirstViewController.m文件) comeBack方法

- (void) comeBack:(NSString *str){

//返回得到的str

}

在第二个页面(NextViewController.h文件)  定义代码块 

@property  (nonatomic,copy)  void( ^backBlock )(NSString *str,NSString *str2);

在第二个页面(NextViewController.m文件) 点击返回事件中

label = self.textFiled.text;

if ( self.backBlock ){

self.backBloc(label,label);

[self.navigationController popViewControllerAnimted:Yes];

完成

0 0