iOS中传值方法block

使用block在两个界面之间进行值传递

思路:

先创建两个视图控制器与对应的类关联分别为ViewController 和NextViewcontroller。

在第一个视图中添加一个UILabel和一个UIButton控件:UILabel显示从第二个界面中传回来的值,UIButton设置跳转到第二个界面。

第二个视图中添加一个UITextField控件,输入文字,当从第二个界面返回到第一个界面时,即当第二个界面要消失的时候,将UITextField中所输入的文字传递到第一个界面,并且显示在第一个界面的label上。

步骤:

1.在storyboard中添加两个视图控制器与类关联,其他控件大概如下

2.代码如下

NextViewController.h


@property (nonatomic, copy) void(^myBlock)(NSString *backValue);


NextViewController.m  为button添加一个方法


- (IBAction)back:(id)sender {

//将textField中输入的内容保存到block中

if (self.myBlock) {

self.myBlock(self.textField.text);

}

//关闭第二个视图

[self dismissViewControllerAnimated:YES completion:nil];

}


ViewController.m 导入NextViewController类 并实现以下方法


//视图控制器将要跳转时调用

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

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

//获取所要跳转到的视图控制器,将创建的nvc作为目标控制器

nvc = segue.destinationViewController;

//获取传过来的参数 并传给label显示在界面上

nvc.myBlock = ^(NSString *backValue) {

self.label.text = backValue;

};

}

3.效果如下



另外在block中的参数可以设置多个用逗号隔开


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容