前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【swift学习笔记】二.页面转跳数据回传

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

作者头像
lpxxn
发布2018-01-31 13:55:02
1K0
发布2018-01-31 13:55:02
举报
文章被收录于专栏:技术之路技术之路

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

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

  我是使用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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-05-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档