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;

        }];

    }

  • 相关阅读:
    关于天气插件代码
    新的起点了
    如何实现按下回车键实现搜索

    random模块
    循环导入问题
    模块的搜索路径
    import 和from…import
    模块四种形式
    面向过程编程
  • 原文地址:https://www.cnblogs.com/mudy/p/4819422.html
Copyright © 2011-2022 走看看