iOS block传值

有两个页面,分别是:FirstViewController和SecondViewController,想到达到的效果是:从第一个页面push到第二个页面,然后在第二个页面pop的时候把值传回第一个页面。


大概代码如下,FirstViewController点击按钮:

- (void)btnClick
{
    SecondViewController *second = [[SecondViewController alloc] init];
    [second completeBlock:^(NSString *name) {
        NSLog(@"回调拿到的name = %@", name);
    }];
    
    [self.navigationController pushViewController:second animated:YES];
}

SecondViewController.h :


typedef void(^Block)(NSString *name); // 定义一个Block类型

@interface SecondViewController : UIViewController

@property (nonatomic, copy) Block block; // block属性

- (void)completeBlock:(Block)block; // block回调方法

@end

SecondViewController.m 点击按钮pop回第一个页面:


- (void)btnClick
{
    // 本页面的block存在则响应第一个页面的回调
    if (self.block) {
        self.block(@"Jerry Yao");
    }
    
    [self.navigationController popViewControllerAnimated:YES];
}

/**
 *  重写回调get方法
 *
 *  @param block 把第一个页面实例化的block传到本页面
 */
- (void)completeBlock:(Block)block
{
    _block = block;
}



阅读更多
版权声明:本文为博主原创文章,未经博主允许爱转不转。 https://blog.csdn.net/yaoliangjun306/article/details/51564320
个人分类: iOS
上一篇iOS获取当前月份的上一个月份
下一篇Mac环境下React Native开发App环境搭建
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭