加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift 闭包(block)传值

发布时间:2020-12-14 07:02:39 所属栏目:百科 来源:网络整理
导读:前面写了Swift的通知和代理的传值: 《Swift NSNotificationCenter的使用》 《Swift 协议代理的使用和传值》 这篇就介绍关于闭包传值的使用。在iOS常用的三种反向传值方式也就基本介绍完了。 效果图 具体使用步骤 在SecondViewController里面 1.声明一个bloc

前面写了Swift的通知和代理的传值:
《Swift NSNotificationCenter的使用》
《Swift 协议代理的使用和传值》
这篇就介绍关于闭包传值的使用。在iOS常用的三种反向传值方式也就基本介绍完了。

效果图

具体使用步骤

在SecondViewController里面
1.声明一个block

/// 声明一个block
typealias SecondViewControllerBlock = (String)->()

2.持有一个block变量

/// 持有一个block变量
var block : SecondViewControllerBlock?

3.赋值

// 赋值
self.block!(textField.text!)

在ViewController里面
4.在页面跳转前取值

// MARK: 跳转到下一个页面
    @IBAction func nextBtnClick(sender: AnyObject) {
        let sVC = SecondViewController()
        sVC.block = {str in
            // 接受block的传值
            self.showLabel.text = str
        }
        // 跳转到下一个页面
        self.navigationController?.pushViewController(sVC,animated: true)
    }

总结

从整体上面看,block的使用和代理的使用流程差不多,但是block在使用会比代理简洁直观,代码会比较集中。
在这篇博客里面:
《【iOS】集成支付宝支付/银联支付/微信支付》
就是很好的例子。
关于Swift闭包的使用的Demo的工程代码和前面的Swift代理的使用的基本一致。在第一个页面里面有一个label和一个按钮,在第二个控制器里面有一个TextField。
代码下载地址:Swift-block

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读