两个View 使用BLOCK传值

来源:互联网 发布:java string类split 编辑:程序博客网 时间:2024/05/17 09:10

从DetailView向MasterView传递一个NSString*


DetailView声明一个block属性:

@property (nonatomic, copy) void(^doTransferMsg)(NSString *_msg);

然后在DetailView的传值方法里检查block是否存在,并传入NSString*:

- (IBAction)transferText:(UIButton *)sender {  if (_doTransferMsg) {    _doTransferMsg(@"hello there");    _doTransferMsg = nil;  }  [self.navigationController popViewControllerAnimated:YES];}

在MasterView里,创建DetailView的时候,调用并实现这个block:

- (IBAction)LoadDetailView:(UIButton *)sender {  [ibTextLabel setText:nil];  DetailViewController *_curDetail = [[DetailViewController alloc] initWithNibName:@"DetailViewController"                                                                            bundle:nil];  [_curDetail setDoTransferMsg:^(NSString *_msg) {    dispatch_async(dispatch_get_main_queue(), ^{      [ibTextLabel setText:_msg];    });  }];  [self.navigationController pushViewController:_curDetail                                       animated:YES];  [_curDetail release];}

原文链接:http://tigerandy.blog.163.com/blog/static/976385201301244756793/

0 0
原创粉丝点击