【swift学习笔记】二.页面转跳数据回传

上一篇我们介绍了页面转跳:【swift学习笔记】一.页面转跳的条件判断和传值

这一篇说一下如何把数据回传回父页面,如下图所示,这个例子很简单,只是把传过去的数据加上了"回传"两个字,回传到父页面。

【swift学习笔记】二.页面转跳数据回传_第1张图片

  我是使用protocol去实现的回传。那让我们来创建一个protocol

import Foundation

protocol ValueBackDelegate {
    func ValueBack(value: String)
}

  

  protocol可以理解为interface,ValueBack方法就是回传的数据。我们要去找一个类去实现他

就我们的第一个页面,ViewController

class ViewController: UIViewController , ValueBackDelegate 

还要实现protocol的方法,我们让textfield去接收回传过来的数据。

    func ValueBack(value: String) {
        teName.text! = value
    }

 

页面2我们要来一个protocol属性,在返回的时候,我们把传过来的值加上“回传”两个字

并返回到页面1

var valueBackDelegate: ValueBackDelegate?


    @IBAction func backToParent(sender: AnyObject) {
        if let a = valueBackDelegate {
            a.ValueBack(receiveName.text! + "回传")
        }
        self.dismissViewControllerAnimated(true, completion: nil)
    }

 

再回到我们的页面1,我们要把实现了protocol的页面1传给页面2的valueBackDelegate

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.identifier == "openView" {
            if let secondView = segue.destinationViewController as? SecondViewController {
                secondView.receivedStr = teName.text!
                secondView.valueBackDelegate = self
            }
        }
    }

到这就全部ok,很简单吧。

完整代码:数据回传.zip

 

你可能感兴趣的:(【swift学习笔记】二.页面转跳数据回传)