Block语法
定义Block
//定义类型
typedef void (^ReceiveMessageBlock)(NSString *);
//申明变量
ReceiveMessageBlock theBlock;
使用Block
//定义Block方法
theBlock = ^(NSString * theMessage){
NSString * showMessage = [NSString stringWithFormat:@"receive:%@", theMessage];
messageLabel.text = showMessage;
}];
//使用Block方法
theBlock(@"hehehe");
具体使用Block的方法请参照iOS开发——Block详解
通过Block来进行页面间的传值
A页面创建B页面,然后B页面调用A页面的方法
A页面
- 创建B页面时设置B页面对A页面的调用Block
[BView setHandler:^(TCPStatus theStatus){
if (theStatus == TCPSuccess) {
statusLabel.text = @"终于TM连接成功了";
}
else{
statusLabel.text = @"没连接上";
}
}];
B页面
- 在B页面提供接口设置Block
- (void)setHandler:(ConnectStatusBlock)block
{
self.connectStatusBlock = block;
}
- 在B页面使用A设置的Block
- (void)receiveMessage:(NSString *)theMessage
{
if (self.receiveMessageBlock) {
self.receiveMessageBlock(theMessage);
}
}