您的位置:首页 > 移动开发 > Swift

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

2016-06-16 08:39 471 查看
视图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, 260, 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 
运行结果为

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: