美文网首页技术
IOS-Block(传值)相关

IOS-Block(传值)相关

作者: Roger_单 | 来源:发表于2015-12-14 11:26 被阅读1541次

Block传值

.h 第二个页面

typedef void (^sendValue)(NSString *);
             //多个情况下 (NSString *,NSString*);
@property (nonatomic,strong) sedValue sv;

.m 第一个页面

-(IBAction)jump:(id)sender{
SecondViewController *second = [[SecondViewController alloc] init];
second.sv = ^(NSString * str){
      //多个 ^(NSString * str,NSString *name)
      self.valueLabel.text = str;
//多个 self.valueLabel.text = [NSString stringWithFormat:@"%@ %@",str,name];
};
[self presentViewController:second animated:YES completion:nil];
}

.m 第二个页面

-(IBAction)click:(id)seder{
[self dismissViewControllerAnimated:YES completion:^{
    _blockUpdateBtnTitle(@"传值");
  //多个 ^{ self.sv(@"传值",@"传值");
}];
}

  • 是写在方法里的,在方法里定义个block,有返回值的,以;结尾,block只有被调用的时候才能执行 {} 里的代码。(如果有同名的优先调局部的)

  • 在类中,定义一个Block变量,就像定义一个函数
    代表有(名),(参数),(返回值)。

  • 没有参数的无返回值:

-(void)viewDidLoad{
     [super viewDidLoad];
    
      void (^printBlock) () = ^(){
      //block 内部
       NSLog(我再block内部);
    };
      printBlock ();
}
  • 有参数的有返回值:
int (^squer)(int) = ^(int num){
    return num*num;
};
NSLog (@"%d",squre(3));

x+y

int x =4;
square(3);
//__block 关键字 修饰 需要在block

__block int x =4;
void (^sum)(int) = ^(int y){
x += y;
NSLog(@"%d",x+y);
};
sum(100);

相关文章

  • IOS-Block(传值)相关

    Block传值 .h 第二个页面 .m 第一个页面 .m 第二个页面 是写在方法里的,在方法里定义个block,有...

  • iOS-Block本质

    iOS-Block本质 参考篇:iOS-Block浅谈[https://www.jianshu.com/p/25a...

  • iOS-block相关

    本篇涵盖block的解析、应用等. 1.Block是什么?2.循环引用,看我就对了3.iOS中block技术小结4...

  • 2018-07-26

    vue组件相关练习1、设计组件定义、分类(全局、局部组件)、2、组件传值、父传值给子组件,用props参数接收子传...

  • iOS反向传值整理

    本文主要讲解iOS中常见的反向传值方法。 1.AppDelegate传值 在AppDelegate中定义相关的属性...

  • Koa(一、get传值,路由,中间件,洋葱图,ejs)

    回调相关案例 Koa 获取get传值 接收get传值,ctx有query(格式话好的参数对象)和querystri...

  • RN的传值相关

    观察者模式 通过EventEmitter实现事件机制,实现简单的观察者模式。发送端、接受端同时需要引入Device...

  • ios开发逆向传值的几种方法整理

    iOS的逆向传值有很多种方法,下面来总结几种常用的传值方式(只贴相关代码): 第一种:代理传值 第二个控制器: 第...

  • 2020-03月前端面试题

    vue相关 vue父子组件传值方式有哪些? 兄弟组件间如何传值? vuex是用来干什么的? vuex核心模块有哪些...

  • iOS的五种传值

    前言 iOS常见的五种传值分别为属性传值,通知传值,代理传值,block传值,单例传值 属性传值 用于正向传值,简...

网友评论

    本文标题:IOS-Block(传值)相关

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