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()

        }

        

  • 相关阅读:
    java值类型和引用类型
    0513作业
    随机四位验证码
    1-36随机生成6个不重复的数
    java随机数
    0509作业
    作业0508
    字符集
    eclipse快捷键
    数据类型 转换
  • 原文地址:https://www.cnblogs.com/mudy/p/4874980.html
Copyright © 2011-2022 走看看