import UIKit
class ViewController: UIViewController,ReturnValueDelegate {
@IBOutlet weak var resultLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func jumpSecond(_ sender: Any) {
let secondVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "secondViewController") as! SecondViewController
secondVC.delegate = self
secondVC.backClosure = {(message: String) in
print("闭包返回的值:\(message)")
}
self.navigationController?.pushViewController(secondVC, animated: true)
}
func returnMessage(message: String) {
print("代理返回的值:\(message)")
resultLabel.text = message
}
}
import UIKit
typealias InputClosure = (String) -> Void
protocol ReturnValueDelegate:class {
func returnMessage(message:String)
}
class SecondViewController: UIViewController {
@IBOutlet weak var textField: UITextField!
weak var delegate:ReturnValueDelegate?
var backClosure:InputClosure?
@IBAction func backAction(_ sender: Any) {
if (self.delegate != nil){
delegate?.returnMessage(message: textField.text!)
self.backClosure!(textField.text!)
self.navigationController?.popViewController(animated: true)
}
}
}