美文网首页橙红科技有限公司复制粘贴牛叉的demo
利用Block在两个ViewController中传值

利用Block在两个ViewController中传值

作者: 申经炳Ewane | 来源:发表于2016-09-07 15:58 被阅读132次

学习文章http://www.jianshu.com/p/533d0c3caeba

常用的在页面中传值有两个方法:

一个是委托代理
另一个是利用Block

简述


实现两个ViewController.
一个是FirstViewController, 另一个是SecondViewController.

主要是在SecondViewController中的文本框输入文字之后
将值传入到FirstViewController的Lable中进行显示.

其中UI设置部分的代码省略

实现步骤


在SecondViewController中设置一个属性块, 其中参数是NSString类型, 用于接收要传的参数.

typedef void (^SYBlockText)(NSString *value);

@interface SecondViewController : UIViewController

@property (strong, nonatomic) UITextField *textField;

@property (strong, nonatomic) UIButton *button;

@property (copy, nonatomic) SYBlockText myBlock;

@end

然后在FirstViewController中对视图中返回到SecondViewController的Button设置动作函数

- (void)toSencondViewController {

       SecondViewController *SecondVC = [[SecondViewController alloc] init];

       __weak FirstViewController *weakSelf = self;  //弱引用转换,为了防止循环引用

       SecondVC.myBlock = ^(NSString *value) {

              weakSelf.lable.text = value;

      };

     [self presentViewController:SecondVC animated:YES completion:nil];

}

之后再SecondViewController中对视图中返回到FirstViewController的Button设置动作函数

- (void)returnFirstViewController{

      self.myBlock(self.textField.text);

      [self dismissViewControllerAnimated:YES completion:nil];

}

效果图


QQ20160907-0@2x.jpg

相关文章

  • block开发使用场景

    block传值 利用block去代理代理传值 1. 代理传值 点击当前控制器Viewcontroller利用mod...

  • 利用Block在两个ViewController中传值

    学习文章http://www.jianshu.com/p/533d0c3caeba 常用的在页面中传值有两个方法:...

  • 代理和 block 传值的使用

    使用block传值 //// ViewController.m// BlockTest//// Create...

  • 误区

    用Block传值是因为ViewController和UIView之间无法用属性传值!!! requestData大...

  • 简单block回调

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

  • iOS 各种界面传值

    1.block 传值 #import "ViewController.h" #import "SendViewCo...

  • block使用步骤

    block 传值实现步骤: 其中:viewcontroller 为接受值的控制器,TestViewControll...

  • Block 之传值

    传值流程: 定义一个 block 在A实例中,传值给 block 在B实例中,实现block,获取到值 .h文件 ...

  • block用法学习

    利用block传值 1.要传一个值给外界,则让block作为参数 ps:在person.h中定义一个方法 @pro...

  • iOS Block传值

    利用block属性传值 写一个block属性的方法

网友评论

    本文标题:利用Block在两个ViewController中传值

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