美文网首页程序员
Block回调传值

Block回调传值

作者: Dayu大鱼 | 来源:发表于2016-04-14 15:32 被阅读354次

实现回调传值的方式有哪些?

1.block
2.delegate
3.NSNotificationCenter

1.block

先声明一个block (在哪里声明?)
需要将哪里的内容传出去就在那里声明一个block
回调的值放在哪里需要在接口部分 拖拽过来(需要注意拖拽到什么地方?存放回调的值的当前类的接口文件里面 )
比如:label是存放回调值的,则拖拽(按control + label控件 拖到ViewController.h 文件接口内 ,并命名)
textView是存放用户输入的需要做回调的空间,以相同的方式拖拽到PushViewController接口内 (当前控件所在的类头文件内)

需要传值的视图代码
PushViewController.h
typedef void (^Block) (NSString*);
@interface  PushViewController :UIViewController
@prooerty (nonatomic)Block PassValueBlock ;
如果省略这个默认为strong
PushViewControlle.m代码
#import "PushViewController.h"
@interface PushViewController ()
@property (weak, nonatomic) IBOutlet UITextView *textView;
@end
⚠️注意:这个是一个分类,可以隐藏接口实现传值的过程:视图消失的时候将输入的内容作为Block(PassValueBblock)的参数即可
-(void)ViewWillDisappear:animated{
[superviewWillDisappear:animated];
_PassValueBlock(_textView.text);
    }```

#####ViewController.m代码

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UILabel *textlLabel;
@end
//:可以隐藏接口

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

PushViewController *pushViewController  =  segue.destinationViewController;

pushViewController.passValueBlock = ^(NSString *text) {

    _textlLabel.text = text;

};

//passValueBlock的生命周期在这个方法内

NSLog(@"%@",pushViewController.passValueBlock);

}
//:ViewController.m内

块内进行传值 ,将输入的数值赋值给回调标签textLbl.text

相关文章

  • iOS-block总结

    block回调-传值 其实就是block作为参数传值方:类的.h有block属性,类的.m有block调用(传值,...

  • Block回调传值

    实现回调传值的方式有哪些? 1.block2.delegate3.NSNotificationCenter 1.b...

  • UI(二十)block

    *block代码块 闭包(一个区域)与C语言函数类似 *block具有反向传值、回调的功能 回调:执行完毕之后返回...

  • iOS - block

    *block代码块闭包(一个区域)与C语言函数类似 *block具有反向传值、回调的功能 回调:执行完毕之后返回再...

  • iOS block详解

    主要是用在响应事件和传值上,比如我们经常用的AFN就会用block进行回调传值. 一.什么是block? bloc...

  • 简单block回调

    block回调 情景:viewController2给viewController1传值,将viewControl...

  • iOS Block详解, Block界面间传值, Block方法

    今天我们来聊一下Block的问题。1.Block界面间的传值问题。2.Block的方法回调问题3.使用Block封...

  • dispatch_block_t 实现不带参数的回调函数

    通常我们实现页面之间的反向传值的方法是代理,block回调,抛通知等方法。但是对于不带参数的回调,比如说点击关注按...

  • iOS,Block传值

    iOS页面之间传值,通常采取四种方式:属性、通知、代理和Block回调传值这四种方式。 今天在这里,我们详细讲解B...

  • block到底是什么?我们为什么要用block

    开发中,block一般应用于反向传值,回调函数,使用block,代码紧凑易读,实在是给开发维护带来极大方便,但是b...

网友评论

    本文标题:Block回调传值

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