zoukankan      html  css  js  c++  java
  • iOS block的使用

    明明知道block是一个很重要的知识点,很久不用就又忘了,这是在网上看到的一个例子。(晚上回去整理另外的一个)

    在视图A上有一个按钮(用来在点击的时候推出视图b)和一个label(用来显示从b传回来的值),在界面b上有一个文本输入框,用来输入想要传给a的文本。

    具体实现的流程是:

    1 在b.h中,为要声明的block重新定义一个名字ReturnTextBlock

    typedef void (^ReturnTextBlock)(NSString *text);//这是定义block的格式,(^ReturnTextBlock)里是block的名字,以^作为标志。(NSString *text)是传入的参数.然后定义一个block属性,@property(nonatomic,copy)ReturnTextBlock returnTextBlock;//用来保存传进来的block语句。然后寻找一个合适的时机调用.

    -(void)returnText:(ReturnTextBlock) block;//是一个在第一个界面传进来一个Block语句块的函数,

     在b.m中,实现方法与找到合适的时机来调用你传进来的block

    -(void)returnText:(ReturnTextBlock)block{2⃣️

          self.returnTextBlock = block;//把传进来的Block语句块保存到本类的实例变量returnTextBlock(.h中定义的属性)中,然后寻找一个时机调用

    }

    -(void)viewWillDisappear:(BOOL)animated{3⃣️

        if (self.returnTextBlock != nil) {

        self.returnTextBlock(self.textField.text);4⃣️

        }

    }

    2、在a.m中

    -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{1⃣️

        BViewController *bvc = segue.destinationViewController;

        [bvc returnText:^(NSString *text) {2⃣️4⃣️

                self.textLabel.text = text;

        }];

    }

  • 相关阅读:
    如何编写一个简单的依赖注入容器
    网站框架的动态编译的实现原理
    Python实现语音识别和语音合成
    OpenCV图像处理以及人脸识别
    Shell教程快速入门
    TensorFlow入门教程
    如何免费使用Google的GPU跑深度学习代码
    高等数学系列文章
    Git系列教程
    一键构造你的博客园目录
  • 原文地址:https://www.cnblogs.com/mudy/p/4819422.html
Copyright © 2011-2022 走看看