美文网首页
block 逆向传值

block 逆向传值

作者: Sherlock_Jim | 来源:发表于2017-06-18 19:18 被阅读9次

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

    //一会要传的值为NSString类型

    typedefvoid(^newBlock)(NSString*);

    @interfaceNewViewController :UIViewController

    //声明block属性

    @property(nonatomic,copy)newBlockblock;

    //声明block方法

    - (void)text:(newBlock)block;

    @end

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

    //设置block,设置要传的值

    - (void)text:(newBlock)block

    {

    self.block= block;

    }

    - (void)viewWillDisappear:(BOOL)animated

    {

    [superviewWillDisappear:YES];

    if(self.block!=nil) {

    self.block(@"呵呵");

    }

    }

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

    #import"ViewController.h"

    #import"NewViewController.h"

    @interfaceViewController()

    @end

    @implementationViewController

    - (void)viewDidLoad {

    [superviewDidLoad];

    UIButton*button = [UIButtonbuttonWithType:(UIButtonTypeRoundedRect)];

    button.frame=CGRectMake(0,100,100,100);

    button.backgroundColor= [UIColorredColor];

    [buttonaddTarget:selfaction:@selector(push)forControlEvents:(UIControlEventTouchUpInside)];

    [self.viewaddSubview:button];

    }

    - (void)push

    {

    NewViewController*newVC = [[NewViewControlleralloc]init];

    //接收block传来的值

    newVC.block= ^(NSString*str){

    NSLog(@"%@", str);

    };

    [self.navigationControllerpushViewController:newVCanimated:YES];

    }

    - (void)didReceiveMemoryWarning {

    [superdidReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

    }

    @end

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

    到此,block完成传值

    相关文章

      网友评论

          本文标题:block 逆向传值

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