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

简介:

上一篇我们介绍了页面转跳:【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

 

本文转自lpxxn博客园博客,原文链接:http://www.cnblogs.com/li-peng/p/5531370.html,如需转载请自行联系原作者

目录
打赏
0
0
0
0
66
分享
相关文章
【Swift开发专栏】Swift中的数据持久化:Core Data与Realm
【4月更文挑战第30天】本文探讨了Swift中两种流行的数据持久化框架——Core Data和Realm。数据持久化是保持应用数据在不同运行周期间一致性的关键。Core Data,苹果的ORM系统,适合处理复杂数据关系,提供与iOS生态系统的无缝集成。使用Core Data涉及定义数据模型、生成NSManagedObject子类、配置持久化容器及执行数据操作。而 Realm,一个轻量级数据库,以其高性能、易于使用的API和实时数据同步适用于跨平台项目。在Swift中使用Realm,需定义数据模型、配置Realm实例、执行数据操作并观察数据变化。理解这两者能帮助开发者构建更高效、可靠的应用。
282 0
一文玩转 Swift 中的 Actors,看看他是如何避免数据竞争的?
一文玩转 Swift 中的 Actors,看看他是如何避免数据竞争的?
197 0
swift网络请求 数据解析 图片显示 模型转换
Alamofire :swift版本的网络请求sdk,是AFNetworking研发团队研发的swift版网络请求工具类 SwiftyJSON:当然就是用来解析json数据的咯 Kingfisher: 是用来显示网络图片的与oc中的SDWebImage类似 HandyJSON: 可将json转模型
289 0
swift网络请求 数据解析 图片显示 模型转换
Swift学习笔记——页面跳转
创建一个single view app后,项目中有main.storyboard,里面是一个viewcontroller。 那么我们如何实现页面跳转 首先添加一个导航控制器Navigation Controller。点击右上的➕,然后选择控件拖到面板上即可
1280 0
Swift学习笔记——新建项目
在xcode菜单中选择 new -> project -> single view app 点击next在弹出窗中填写项目名称 这里languge有可以选择object-c或swift作为项目语言。这里我们学习swift,所以选择swift。 如果language选择swift,下面的user interface可以选择swiftUI和storyboard。 SwiftUI是2019 年 WWDC 大会上,苹果在压轴环节向大众宣布了基于 Swift 语言构建的全新 UI 框架,与flutter类似,是用代码编写页面,支持快速预览。
762 0
SWIFT中使用AFNetwroking访问网络数据
AFNetworking 是 iOS 一个使用很方便的第三方网络开发框架,它可以很轻松的从一个URL地址内获取JSON数据。 在使用它时我用到包管理器Cocoapods 不懂的请移步: Cocoapods安装:http://www.
1110 0
swift UI专项训练8 展示数据
  现在我想要点击表单中的条目,进行标记,再次点击以取消,那么该如何做呢?依然使用的是tableView的重载方法,在 Restaurant中新增一个isCollected的值表示是否收藏,...
944 0
Swift UI专项训练7 数据添加
  上一话我们使用了自己定义的控制器之后发现tableview上的餐馆没有了,这一话我们来添加数据,新添加一个餐馆类,这个类我们不需要继承系统的类,直接添加一个swift文件就好 import Foundation class Restaurant { var name = "" var location = "" var score = 10 } 我简单建一个类,分别代表餐馆名字、餐馆位置和餐馆评分,它们都有默认值。
1075 0
|
9月前
|
苹果iOS新手开发之Swift 中获取时间戳有哪些方式?
在Swift中获取时间戳有四种常见方式:1) 使用`Date`对象获取秒级或毫秒级时间戳;2) 通过`CFAbsoluteTimeGetCurrent`获取Core Foundation的秒数,需转换为Unix时间戳;3) 使用`DispatchTime.now()`获取纳秒级精度的调度时间点;4) `ProcessInfo`提供设备启动后的秒数,不表示绝对时间。不同方法适用于不同的精度和场景需求。
283 3
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等