美文网首页
iOS使用block从后往前传值

iOS使用block从后往前传值

作者: 鱼遇雨欲語 | 来源:发表于2017-05-12 10:43 被阅读0次

①在后面控制器的 .h文件 中声明block

//一会要传的值为NSString类型
typedef void(^newBlock)(NSString*);

@interface MineViewController : RSBaseCommonViewController

//声明block属性
@property (nonatomic, copy) newBlock block;

//声明block方法
- (void)text:(newBlock)block;

@end

②在后面控制器的 .m文件 中设置block

//设置block,设置要传的值
- (void)text:(newBlock)block
{
    self.block = block;
}

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:YES];
    
    if(self.block != nil) {
        self.block(@"呵呵");
    }

}

③在前面控制器的 .m文件 中接收传来的值

#import "ViewController.h"
#import "TwoViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    UIButton *button = [UIButton buttonWithType:(UIButtonTypeRoundedRect)];
    button.frame = CGRectMake(0, 100, 100, 100);
    button.backgroundColor= [UIColor redColor];
    [button addTarget:self action:@selector(push) forControlEvents:(UIControlEventTouchUpInside)];
    [self.view addSubview:button];
    
}

- (void)push
{
    TwoViewController *newVC = [[TwoViewController alloc] init];
    
    //接收block传来的值
    newVC.block= ^(NSString*str){
        NSLog(@"%@", str);
    };
    
    [self.navigationController pushViewController:newVC animated:YES];
}

@end

④最终实现效果:在控制台打印出了"呵呵"

相关文章

  • iOS使用block从后往前传值

    ①在后面控制器的 .h文件 中声明block ②在后面控制器的 .m文件 中设置block ③在前面控制器的 .m...

  • iOS 传值方式

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

  • Block的使用

    1.什么是Block? Block是iOS中的数据类型(定义变量 、形参、返回值)。 Block是苹果官方推荐使用...

  • iOS Block存储域及循环引用

    系列文章:iOS Block概念、语法及基本使用iOS Block实现原理iOS Block __block说明符...

  • iOS Block实现原理

    系列文章:iOS Block概念、语法及基本使用iOS Block __block说明符iOS Block存储域及...

  • iOS Block __block说明符

    系列文章:iOS Block概念、语法及基本使用iOS Block实现原理iOS Block存储域及循环引用 上一...

  • ios block使用

    iOS Block的使用一 .最简单的block使用******使用block的三个步骤:1.定义block变量 ...

  • iOS开发-block传值

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

  • block作为参数传递

    众所周知,block是iOS开发中一个经常使用的模块, block 可以用来包含一段代码块,可以传值, 用法灵活,...

  • iOS 常用传值

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

网友评论

      本文标题:iOS使用block从后往前传值

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