美文网首页
iOS开发-block传值

iOS开发-block传值

作者: 小熊iOS开发 | 来源:发表于2016-08-11 22:12 被阅读0次

    block传值步骤比代理传值步骤简便,实际开发中经常使用到。

    block传值分为block属性传值和block方法传值

    block属性传值

    传值界面操作步骤:

    1.声明一个block属性,用来实现下级界面向上级界面传值

    2.执行block,并且传递参数

    接收传值的界面操作步骤:

    1.实现block

    需要传值的界面-SecondViewController

    @interface SecondViewController :UIViewController

    //1.声明一个block属性,用来实现下级界面向上级界面传值

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

    @property(nonatomic,copy) NSString*labelText;

    @end

    - (void)popToFirstVC:(UIButton*)sender

    {

    // 2.执行block,并且传递参数

    self.secondBlock(@"路飞");

    NSLog(@"----- %@",self.secondBlock);

    [self.navigationControllerpopViewControllerAnimated:YES];

    }

    - (void)pushToNextVC:(UIButton*)sender 

    {

    // 3.实现block

    secondVC.secondBlock= ^(NSString*titleStr) {

    weakSelf.label.text= titleStr;

    };

    [self.navigationController pushViewController:secondVCanimated:YES];

    block方法传值

    #import <Foundation/Foundation.h>

    @interface AppTool :NSObject

    typedef void(^AppToolBlock)(NSString*aString);

    //通过该方法把一个NSInterger类型的数据转化为NSString并且通过block进行回调

    - (void)changeNumber:(NSInteger)number andBlock:(AppToolBlock)block;

    @end

    #import "AppTool.h"

    @implementation AppTool

    - (void)changeNumber:(NSInteger)number andBlock:(AppToolBlock)block

    {

    NSString*string = [NSString stringWithFormat:@"%ld", number];

    //通过block进行回调

    block(string);

    }

    @end

    #pragma mark -在方法中使用block

    - (void)changeNumberToString:(UIButton*)sender

    {

    AppTool*appTool = [[AppTool  alloc] init];

    [appTool  changeNumber:10010  andBlock:^(NSString*aString) {

    self.label.text= aString;

    }];

    }

    相关文章

      网友评论

          本文标题:iOS开发-block传值

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