swift 学习笔记3 -- OC的block与swift的闭包

来源:互联网 发布:党纪党规知敬畏 编辑:程序博客网 时间:2024/04/27 15:45

目的:两VC通过闭包传值


FirstVC.swift里:


import UIKit

class FirstVC: UIViewController {

    @IBOutlet weakvar output: UILabel!


    @IBOutlet weak var ig: UIImageView!

    override func viewDidLoad() {

        super.viewDidLoad()

        // Do any additional setup after loading the view, typically from a nib.

        

    }


    @IBAction func show(sender:AnyObject) {

        self.ig.image =UIImage(named: "homePY.png");

        

        let vc =UIStoryboard(name: "Main", bundle:NSBundle.mainBundle()).instantiateViewControllerWithIdentifier("Second")as! Second

        self.navigationController?.pushViewController(vc, animated:true)

        let weakSelf = self;

        vc.setClosurePass { (input:String) ->Void in

            weakSelf.output.text = input;

        }

    }

}



SecondVC.swift里:

import UIKit

typealias PassClosureType = (String) ->Void


class Second: UIViewController {

    @IBOutlet weak var input: UITextField!

    var closurePassValue:PassClosureType?

    

    override func viewDidLoad() {

        super.viewDidLoad()

        // Do any additional setup after loading the view, typically from a nib.

    }


    func setClosurePass(temClosure:PassClosureType){

        self.closurePassValue = temClosure

    }

    

    @IBAction func passValue(sender:AnyObject) {

        if let cp =self.closurePassValue {

            if let tex =self.input.text{

                cp(tex)

            }

        }

    }

}


0 0