美文网首页
iOS中传值方法block

iOS中传值方法block

作者: H小凡 | 来源:发表于2016-12-08 14:53 被阅读33次

使用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中的参数可以设置多个用逗号隔开


相关文章

  • iOS 小常识5--传值

    4:小常识5--传值 在iOS中,传值的方法,主要可分为block(块),delegate(代理),notific...

  • iOS 传值方法(属性传值、代理传值、Block、通知、单例)

    iOS 传值方法(属性传值、代理传值、Block、通知、单例)简单的介绍一下几个传值方式 1、属性传值 在传值的时...

  • iOS开发-block传值

    block传值步骤比代理传值步骤简便,实际开发中经常使用到。 block传值分为block属性传值和block方法...

  • iOS中传值方法block

    使用block在两个界面之间进行值传递 思路: 先创建两个视图控制器与对应的类关联分别为ViewControlle...

  • iOS 常用传值方式

    总结 iOS 日常开发中的几种常用传值方式:正向传值代理传值block传值通知传值单例 文章代码:https://...

  • Block传值

    iOS传值一共有四种:属性传值,代理传值,通知传值以及Block传值; 今天我们来说一下Block传值: 概念:带...

  • iOS 常用传值

    iOS 传值(Delegate NSNotification Block Singleton NSUserDefa...

  • iOS传值方式

    在iOS中,常见的传值方式有以下几种:1.属性传值2.单例传值3.通知传值4.代理传值5.Block这些传值方式,...

  • iOS之传值

    在iOS中传值的方式有很多种方式,有最普遍的就是属性传值,代理传值,block传值等方式了。写了OC和swift的...

  • Swift界面传值

    Swift中界面传值的方法 主要有三种 1.代理传值2.闭包传值(即OC中的Block) 属性传值 代理传值 F...

网友评论

      本文标题:iOS中传值方法block

      本文链接:https://www.haomeiwen.com/subject/teksmttx.html