Block传值

作者: i赵磊 | 来源:发表于2016-05-23 18:43 被阅读90次

效果图

ViewController.m

#import "ViewController.h"
#import "ZLViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor=[UIColor redColor];
}
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    ZLViewController*zlController=[[ZLViewController alloc]init];
    //防止循环引用
    __weak typeof(self)weakSelf=self;
    //block的实现
    zlController.myBlock=^(UIColor*color){
    //来回调此块代码时color已经有值。
        weakSelf.view.backgroundColor=color;
    };
    [self presentViewController:zlController animated:YES completion:nil];
}
@end

ZLViewController.h

#import <UIKit/UIKit.h>
typedef void (^ByValueBlock)(UIColor*);
@interface ZLViewController : UIViewController
@property(strong,nonatomic)ByValueBlock myBlock;
@end

ZLViewController.m

#import "ZLViewController.h"
@interface ZLViewController ()
@end
@implementation ZLViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor=[UIColor blueColor];
}
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    UIColor*color=[UIColor grayColor];
    //block的调用(赋值)
    self.myBlock(color);
    [self dismissViewControllerAnimated:YES completion:nil];
}
@end

相关文章

  • iOS开发-block传值

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

  • iOS-block总结

    block回调-传值 其实就是block作为参数传值方:类的.h有block属性,类的.m有block调用(传值,...

  • Block传值

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

  • oc中使用delegate和block进行反向传值

    delegate传值 block实现传值

  • iOS开发之利用Block逆向传值

    一、书写规范Block传值,需要注意的是,谁传值就需要定义Block,捕获方仅仅需要传递Block给传值方,并处理...

  • block开发使用场景

    block传值 利用block去代理代理传值 1. 代理传值 点击当前控制器Viewcontroller利用mod...

  • Block 之传值

    传值流程: 定义一个 block 在A实例中,传值给 block 在B实例中,实现block,获取到值 .h文件 ...

  • iOS 传值方式

    1,从前向后传值:属性传值 2, 从后向前传值: block、 代理、 通知 结论1, block、 代理 传值用...

  • iOS 传值的方式的区别

    1.属性传值。 2.block传值。 3.代理传值(delegate) 4.通知传值(notification)。...

  • iOS页面传值

    常用 + 代码 属性传值 方法传值 Block Delegate NSNotificationCenter传参 N...

网友评论

    本文标题:Block传值

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