zoukankan      html  css  js  c++  java
  • swift闭包传值

    不知道原理,就知道这么用的,皮毛上的那一点。

    寻思着把以前的项目改成swift的,结果了,,,

    反向传值

    一、

    //类似于OC中的typedef

    typealias sendValueClosure=(string:String)->Void//1

    二、

     //声明一个闭包

         var myClosure:sendValueClosure?

          //下面这个方法需要传入上个界面的someFunctionThatTakesAClosure函数指针

        func initWithClosure(closure:sendValueClosure?){

            //将函数指针赋值给myClosure闭包,该闭包中涵盖了someFunctionThatTakesAClosure函数中的局部变量等的引用

            myClosure = closure     

        }

    三、在适当的时候进行赋值

     func action(cityName:String){

            //判空

       if (myClosure != nil){

                //闭包隐式调用someFunctionThatTakesAClosure函数:回调。

                myClosure!(string: cityName)

            }

        }

    第一个界面

    一、

     let second = CitysTableViewController()

            //将当前someFunctionThatTakesAClosure函数指针传到第二个界面,第二个界面的闭包拿到该函数指针后会进行回调该函数

            second.initWithClosure(someFunctionThatTakesAClosure)

    二、

     func someFunctionThatTakesAClosure(string:String) -> Void {

            cityName = string

            nameLabel.text = string

            requestData()

            self.tableView.reloadData()

        }

        

  • 相关阅读:
    CF1324F Maximum White Subtree(树形dp)
    定时任务集群部署
    zookeeper服务的注册与发现
    多个定时任务服务注册到zookeeper临时顺序节点配置
    nginx反向代理
    nginx反向代理、负载均衡
    Eclipse快捷键
    下拉列表中复选框多选
    Zookeeper节点查看工具
    git打tag
  • 原文地址:https://www.cnblogs.com/mudy/p/4874980.html
Copyright © 2011-2022 走看看