zoukankan      html  css  js  c++  java
  • 关于OC中的block自己的一些理解(二)

    一、block延伸:页面间反向传值

    1)first页面的代码

    - (void)viewDidLoad {
        [super viewDidLoad];
        [self setupBtn];
        self.view.backgroundColor = [UIColor whiteColor];
        
    }
    - (void)setupBtn
    {
        UIButton * btn = [[UIButton alloc]init];
        [btn addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside];
        btn.backgroundColor = [UIColor blackColor];
        btn.frame = CGRectMake(100, 100, 100, 100);
        [self.view addSubview:btn];
    }
    - (void)buttonClick
    {
        SecondViewController * secondVC = [[SecondViewController alloc]init];
        //在first页面调用block输出字符串
        secondVC.myBlock= ^(NSString * str){
            NSLog(@"%@",str);
        };
        [self.navigationController pushViewController:secondVC animated:YES];
    }

    2)second页面的代码

    //.h文件
    #import <UIKit/UIKit.h>
    
    @interface SecondViewController : UIViewController
    //定义block
    @property (nonatomic,copy)void (^myBlock)(NSString * str);
    @end
    //.m文件
    - (void)setupBtn
    {
        UIButton * btn = [[UIButton alloc]init];
        [btn addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside];
        btn.backgroundColor = [UIColor blackColor];
        btn.frame = CGRectMake(100, 100, 100, 100);
        [self.view addSubview:btn];
    }
    - (void)buttonClick
    {
        //通过block传值
        if (self.myBlock) {
            self.myBlock(@"haha");
        }
        [self.navigationController popToRootViewControllerAnimated:YES];
    }

    输出结果:

    2016-02-19 11:36:55.168 03-block[983:70116] haha

    参考博客:http://my.oschina.net/leejan97/blog/268536?fromerr=2UdIND3G

  • 相关阅读:
    作业
    awk 简单用法小结
    R/SAS/Matab数据相互转换
    Xargs 批量处理命令
    线性表
    C plus 笔记(一 )
    C plus 内存管理
    Skyeye学习(一)—— 安装与使用测试例子
    mongoDB基本操作
    《Algorithms Unlocked》读书笔记3——计数排序
  • 原文地址:https://www.cnblogs.com/fengzhihao/p/5200527.html
Copyright © 2011-2022 走看看