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

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

posted @ 2014-08-09 13:39  wisejoker  阅读(218)  评论(0编辑  收藏  举报