import UIKit
class ViewController: UIViewController, myDelegate {
@IBOutlet weak var principalLabel: UILabel!
@IBAction func mainButton(sender: UIButton) {
//we got it the final instance in storyboard
let secondController: SecondViewController = self.storyboard?.instantiateViewControllerWithIdentifier("SecondViewController") as! SecondViewController
secondController.data = "Text from superclass"
//who is it delegate
secondController.delegate = self
//we do push to navigate
self.navigationController?.pushViewController(secondController,
animated: true)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func writeDateInLabel(data:NSString){
self.principalLabel.text = data as String
}
}
当点击第二个视图控制器的按钮,就通过代理回传给第一个视图控制器的lable赋值
protocol myDelegate {
func writeDateInLabel(date:NSString)
}
class SecondViewController: UIViewController {
var data: NSString = ""
var delegate: myDelegate?
@IBOutlet weak var secondLabel: UILabel!
@IBAction func secondButton(sender: AnyObject) {
self.delegate?.writeDateInLabel("I got it!")
self.navigationController?.popViewControllerAnimated(true)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
secondLabel.text = data as String
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}