微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

swift基础利用闭包在两个视图界面传值

视图ViewController


class ViewController: UIViewController{
    
    @IBOutlet weak var valueLabel: UILabel!
    
    
    var secVC:SecondController = SecondController()

    override func viewDidLoad() {
        super.viewDidLoad()
        
        secVC.myClosure = {(text:String) -> Void in
        
            print("\(text)")
            self.valueLabel.text = text
        }
    }
    
    @IBAction func push() {
        
        self.navigationController?.pushViewController(secVC,animated: true)
        
        
    }

}



视图二

import UIKit

// 闭包
typealias sendValueClosure = (text:String)->Void

class SecondController: UIViewController {

    var myClosure:sendValueClosure?
    
    var textField: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()

        self.view.backgroundColor = UIColor.redColor()
        textField = UITextField(frame: CGRectMake(30,100,260,30))
        textField.borderStyle = UITextBorderStyle.RoundedRect
        self.view.addSubview(textField)
        
      let btn = UIButton(frame: CGRectMake(30,150,30))
        btn.setTitle("click",forState: UIControlState.normal)
        btn.addTarget(self,action: #selector(SecondController.click),forControlEvents: UIControlEvents.TouchUpInside)
        self.view.addSubview(btn)
    }

    
    // 点击这里传值过去
    func click() {

        let str:String = textField.text!
        
        if (myClosure != nil){
            myClosure!(text:str)
        }
        
        self.navigationController?.popViewControllerAnimated(true)
           
    }

}


当点击click
运行结果为

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐