使用Block来进行页面间的传值

时间:2022-12-19 19:05:45

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);
}
}