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

        }

        

  • 相关阅读:
    String驻留带来的危害
    Go语言的堆栈分析
    SecureCRT使用技巧
    Javascript中相同Function使用多个名称
    记录Office Add-in开发经验
    Silverlight和WPF中DataContractJsonSerializer对时间的处理差异
    ASP.NET MVC项目实践技巧
    有点担心Node.js的未来了
    回首经典的SQL Server 2005
    duilib关于学习Demo中的QQ
  • 原文地址:https://www.cnblogs.com/mudy/p/4874980.html
Copyright © 2011-2022 走看看