虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > IOS编程/Objective-C > iOS中详解Block作为property属性实现页面之间传值

iOS中详解Block作为property属性实现页面之间传值
类别:IOS编程/Objective-C   作者:码皇   来源:互联网   点击:

这篇文章主要介绍了iOS中Block作为property属性实现页面之间传值的相关知识点,以及代码分享,一起学习下吧。

我们可以把Block当做Objective-C的匿名函数。Block允许开发者在两个对象之间将任意的语句当做数据进行传递,往往这要比引用定义在别处的函数直观。另外,block的实现具有封闭性(closure),而又能够很容易获取上下文的相关状态信息。定义Block变量,就相当于定义了一个函数。但是区别也很明显,因为函数肯定是在-viewDidLoad方法外面定义,而Block变量定义在了viewDidLoad方法内部。当然,我们也可以把Block定义在-viewDidLoad方法外部,例如上面的代码块printNumBlock的定义,就在-viewDidLoad外面。

第二个viewcontroller控制第一个button的title

跳转的时候,button的selector()

    - (void)SecondVc{
    SecondViewController *svc = [[SecondViewController alloc] init];
    // Block 传值 svc.secondBlock = ^(){
    NSLog(@"First->Second");
    [self.button setTitle:@"23" forState:UIControlStateNormal];
    }
    ;
    [self.navigationController pushViewController:svc animated:YES];
    }

第二个viewcontroller.h的声明:

    typedef void (^SecondController)();
    @interface SecondViewController : UIViewController /** block */ @property (nonatomic, copy) SecondController secondBlock;
    @end

第二个viewcontroller.m的touchesBegan方法:

    - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    NSLog(@"second view controller");
    if (_secondBlock) {
    _secondBlock();
    }
    }

您可能感兴趣的文章:

  • 一篇文章让你看懂IOS中的block为何再也不需要WeakSelf弱引用
  • iOS中block变量捕获原理详析
  • iOS MRC 下 block 循环引用问题实例讲解
  • 浅谈iOS 对于block的一点理解
  • iOS在Block中修改外部变量值的实现代码
  • iOS面试中如何优雅回答Block导致循环引用的问题
  • IOS 使用Block二次封装AFNetworking 3.0详解
  • iOS通过逆向理解Block的内存模型
  • iOS利用Block逆向传值的方式详解
  • iOS通过block在两个页面间传值的方法
  • iOS中Block的回调使用和解析详解
  • iOS 9 更新之Safari广告拦截器(Content Blocker)开发教程
  • iOS(闭包)block传值详解
相关热词搜索: iOS Block property