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

        }

        

  • 相关阅读:
    侧滑界面的实现
    Private field 'XXX' is never assigned的解决办法
    android先加载注册页面而不是MainActivity主页面
    每日日报4
    每日日报3
    47 选择排序和插入排序
    计算机启动过程 BIOS MBR等
    ARM中MMU地址转换理解(转)
    深度学习框架 CatBoost 介绍
    预训练词嵌入
  • 原文地址:https://www.cnblogs.com/mudy/p/4874980.html
Copyright © 2020-2023  润新知