swift两个视图控制器之间的传值

来源:互联网 发布:javascript重要吗 编辑:程序博客网 时间:2024/05/22 01:28
import UIKitclass 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.    }    }



0 0