美文网首页
代理和block的简单理解及使用(对比)

代理和block的简单理解及使用(对比)

作者: 那一处风景ljz | 来源:发表于2016-06-17 10:10 被阅读47次

1.代理。
代理从后往前传值(比如nsstring)。
本文从B类(MyVC)传字符串到A类(ViewController)。

MyVC.h MyVC.m 使用

2.block。
本例为从B类TwoViewController向A类OneViewController传值。所以先从B类开始。


TwoViewController.h

//声明并描述block

#importtypedef void(^ChangeBgColorBlock)(NSInteger);

@interface TwoViewController : UIViewController

//属性描述block时,一定要用copy。

@property (nonatomic ,copy)ChangeBgColorBlock block;

@end


TwoViewController.m

- (void)viewDidLoad

{

[super viewDidLoad];

self.navigationItem.title = @"Two";

}

- (IBAction)btnClick:(UIButton *)btn

{

NSInteger index = (NSInteger)btn.tag;

//  执行(回调)block

_block(index);

[self.navigationController popViewControllerAnimated:YES];

}


OneViewController.m

- (void)viewDidLoad

{

[super viewDidLoad];

self.navigationItem.title = @"One";

}

- (IBAction)gotoNext:(id)sender

{

TwoViewController *vc = [[TwoViewController alloc] init];

//  定义了block,将来在TwoViewController的vc中,点击不同的按钮,就会回调block,执行下面block定义中switch case语句,改变当前view的bgColor。

vc.block = ^(NSInteger chuangjinlaideInt)

{

switch (chuangjinlaideInt)

{

case 1:

{

self.view.backgroundColor = [UIColor redColor];

}

break;

case 2:

{

self.view.backgroundColor = [UIColor greenColor];

}

break;

case 3:

{

self.view.backgroundColor = [UIColor blueColor];

}

break;

default:

break;

}

};

[self.navigationController pushViewController:vc animated:YES];

}

初学者,请大神绕道或指正。

相关文章

  • 代理和block的简单理解及使用(对比)

    1.代理。代理从后往前传值(比如nsstring)。本文从B类(MyVC)传字符串到A类(ViewControll...

  • iOS block的使用

    前言: block是iOS开发中时间及参数传递的一种方法,和代理模式(delegate)相比,block是简单易用...

  • iOS面试进阶篇(五)

    目录 block原理及使用多线程方式OC内存管理机制代理,通知的区别及使用场景宏const,const,exter...

  • iOS11最新 - 零基础上手block

    一.初识block 这就是一个最简单的block,为了方便初学者记忆理解,我们再来用熟悉的方法/函数来对比理解:如...

  • 通知、Block、代理的简单使用

    使用场景 1.回调方法 在日常的开发过程中,我们经常会遇到一些完成之后的处理问题,比如完成网路请求之后的回调,或者...

  • Objective-C 类之间通信

    block的使用 block的定义和使用 变量的作用域及代码的执行顺序 block外部变量的值在block内部具有...

  • iOS开发-block传值

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

  • Block浅析

    参考了网上的一些Block的文档,加上自己对Block的使用、理解,对Block做一个简单的分析。 Block是C...

  • Block 介绍及简单使用

    多谢两位大佬的分享:(传送入口)http://www.jianshu.com/p/51d04b7639f1[htt...

  • swift传值:利用代理(delegate)和闭包(closu

    转载Swift使用delegate和closure进行传值:类似oc的代理和block firstViewCont...

网友评论

      本文标题:代理和block的简单理解及使用(对比)

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