ios block用代码块反向传值最简单

新建一个工程,需要之前的代理什么的,太麻烦了,通通不要。我们就要最简单的,最实用的。我们来学习下代码块的用法。

新建一个 FirstViewController ,在FirstViewController.h里面添加一个方法

如下图



然后把2个页面的跳转什么的写好。

老样子先写第一个

#import "ViewController.h"

#import "FirstViewController.h"

@interface ViewController ()


@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

  

    self.view.backgroundColor = [UIColor blueColor];

    

    [self createButton];

    

    

}



-(void)createButton

{

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];

    btn.frame = CGRectMake(30, 50, 300, 40);

    [btn setTitle:@"下一页" forState:UIControlStateNormal];

    btn.titleLabel.font = [UIFont systemFontOfSize:24];

    

    [btn addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside];

    

    [self.view addSubview:btn];

}



-(void)btnClick

{


    FirstViewController *firstVC = [[FirstViewController alloc]init];

    

    //创建block变量,把更改的数据赋给它,然后更改背景颜色(是不是很简洁?比之前的简单太多了,大脑不在短路了,直接在    FirstViewController .h里面调用就行。因为在 FirstViewController .m里面已经把颜色修改好了,而第一个页面是调用了  FirstViewController .h的方法,之间建一个block变量,把更改的颜色赋给变量,更改背景颜色

    firstVC.block = ^(UIColor *color)

    {

        

        self.view.backgroundColor = color;

    };

    

    [self presentViewController:firstVC animated:YES completion:^{

        

        NSLog(@"firstVC已经被移除");

        

    }];

    

    

}

@end



//然后再写第二个页面




#import "FirstViewController.h"


@interface FirstViewController ()


@end


@implementation FirstViewController


- (void)viewDidLoad {

    [super viewDidLoad];

   

    self.view.backgroundColor = [UIColor brownColor];

    

    [self createButton];

    

}


-(void)createButton

{

    

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];

    

    btn.frame = CGRectMake(30, 150, 300, 40);

    [btn setTitle:@"返回" forState:UIControlStateNormal];

    

    [btn addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside];

    

    [self.view addSubview:btn];

}



-(void)btnClick

{

    //调用代码块修改上一个视图的颜色

    self.block([UIColor cyanColor]);//只需这么一句代码就完成任务了

    [self dismissViewControllerAnimated:YES completion:nil];

}


@end




  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值