swift中的传值
光阴似箭,日月如梭,转眼间学习的旅途已经过了一大半了,忘着自己所敲过的成批的代码,看着自己付出和努力,默默地为自己这几个月的奋斗感到欣慰,不论学习的路途再怎么的艰辛,但是自己还是坚持过来了,回想着以往的自己,似乎还从没有这么的坚持过,也没有这么的认真对待过,所以这么艰难的路自己都走过来了,后面的我相信一定是绚丽的明天和辉煌的未来,也许有些人说当个程序员真的好苦,但是我并不这么认为,因为这是我想做的,也是我所向往的,更是我所选择的道路,做“你”所想,实现我们共同的目标!!!!
在这看似漫长而又短暂的一天里,我终于认识到了时间的宝贵,也认识了惜时的重要性,希望大家和我一样都要珍惜时间,把握身边的分分秒秒。今天我们主要学习了Swift中的传值问题,先是由前向后传值,再者是右后往前传值,当然方法也不止一种的啦,下面我就为大家简单地介绍下在传值中我们经常遇到的其中一种方法吧,望大家有所收获的同时多提意见哈:
一、Storyboard搭建UI界面步骤详解
其中关于创建工程的步骤在这里就不多提了,因为在前面已经说过了,当然了不懂的可以再问哦,下面简单说下传值的基本流程:
1.可是话步骤:

箭头所指方向就是故事本也就是storyboard,接下来就要拖控件,进行UI界面的搭建了

先将原本带有的Controller给删除了,然后再重现拖上去一个NavigationController,当然了,这个控件是可以进行搜索的,下面为大家指出搜索的具体位置
当然在刚拖进去的时候尺寸会大的有点受不了,不过我们还是有针对方案的,下面为大家指出

首先我们需要先选中我们拖上去的控件然后选中红色圈圈圈出的选项,接下来我们就可以看到矩形框圈出的区域了,我们点击它后,会弹出箭头所指的提示框,我们选择箭头所指的选项就可以实现我们的需求了。
接下来的步骤类似于上面所说的就是单纯的拖控件了,至于大小就不用管了,因为我们在刚开始的时候已经调好了,控件拖好后的效果是这样的,如下图:

至于那个箭头可能还是有些人不知道的把,这个我们需要在另外一个选项中调,让第一个视图作为我们的根视图控制器,如图所示:

这样简单地UI界面就基本完成了
二、代码实现具体的传值过程
首先我们需要建几个类让我们所托控件根据实现需求分别继承,其次然后我们需要自己键model层,来进行数据管理,下面为大家附上传值的具体代码,可能不够详细,有不足还请指出。
class AddressBookTableViewController: UITableViewController {
var arry = [AddressBook]()
func getData(ntf: NSNotification) {
self.arry.append(ntf.object as AddressBook)
}
override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("getData:"), name: "aaa", object: nil)
var model : AddressBook = AddressBook()
var dic = Dictionary<String, String>() dic["name"] = nameTextFiled.text
dic["sex"] = SexTextField.text
dic["phoneNumber"] = PhoneTextField.text model.setValuesForKeysWithDictionary(dic) NSNotificationCenter.defaultCenter().postNotificationName("aaa", object: model, userInfo: dic)
// self.delegate!.addInfo(model) var alt = UIAlertView(title: "添加成功", message: "已经将name:\(nameTextFiled.text) sex:\(SexTextField.text), phoneNumber:\(PhoneTextField.text)插入", delegate: self, cancelButtonTitle: "OK")
alt.show()
这是一种从后往前的传值方法,也就是类似于通讯录添加联系人的方法。
下面再为大家介绍从前往后传至的方法,也就是通讯录中点击联系人跳转至详情页的实现。
var arry = [AddressBook]()
var model1 : AddressBook = AddressBook() var dic = Dictionary<String, String>()
dic["name"] = "乔明"
dic["sex"] = "不明"
dic["phoneNumber"] = "" model1.setValuesForKeysWithDictionary(dic)
self.arry.append(model1)
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
if sender is UITableViewCell {
var cell = sender as UITableViewCell
var indexPath = tableView.indexPathForCell(cell)
var model = self.arry[indexPath!.row]
var vc = segue.destinationViewController as ViewController
vc.delegate = self
vc.info = model
} else {
var vc = segue.destinationViewController as ViewController
vc.delegate = self
}
}
func addInfo(info: AddressBook) {
self.arry.append(info)
}
当然了,这个前提是要遵循代理,然后实现代理中的方法,具体的创建代理和代理方法我在下面为大家补充上。

这就是两种简单地传值方法,希望可以帮助大家更快的学习Swift语言,如果有什么不懂的尽管想我提出,有问必答哦,哈哈。
好了今天就写到这里了,要开始复习今天的知识点了,good good study, day day up! 哈哈,好好学习哦博友们,我们一起进步啦,加油加油!
swift中的传值的更多相关文章
- Swift: 比较Swift中闭包传值、OC中的Block传值
一.介绍 开发者对匿名函数应该很清楚,其实它就是一个没有名字的函数或者方法,给人直观的感觉就是只能看到参数和返回值.在iOS开发中中,它又有自己的称呼,在OC中叫Block代码块,在Swift中叫闭包 ...
- IOS学习[Swift中跳转与传值]
Swift中页面跳转与传值: 1.简单方式 首先,Swift的跳转可分为利用xib文件跳转与storyboard跳转两种方法,我这里选择使用storyboard的界面跳转方法. 1.通过在storyb ...
- Swift中的一些关键字
以下关键字关于引用传参.属性.修改成员变量.静态变量.索引和构造函数重载 读过The Swift Programming Language的人都能看得出,我上面的这几个说法全不是apple的习惯用语. ...
- Swift 08.页面传值
OC中经常用到的一种初始化控制器的方法.比如A push B.并且将A的一个值:value 传递给B 使用.简单的办法就是 在B重构init方法.比如在.h 中定义: - ()initValue:(N ...
- Swift 中的getting和setter的使用
以下简单的介绍Swift中的getting和setting的使用方法: Xcode version: 6.1 先附代码: class Test { var num1: Double = 0.0 ini ...
- Swift 闭包反向传值
Swift中闭包反向传值 1.第二控制器申明一个闭包类型 typealias BackBlock = (String) -> Void 2.第二控制器定义一个变量 var BackBlockCl ...
- Swift中Singleton的实现
一.意图 保证一个类公有一个实例,并提供一个访问它的全局访问点. 二.使用场景 1.使用场景 当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时 当这个唯一实例应该是通过子类化可扩展的,并且 ...
- Swift新手教程系列5-函数+selector在swift中的使用方法
原创blog.转载请注明出处 近期在用swift写代码,尽管遇到一些问题,可是代码量确实减了不少. swfit新手教程系列会随着我使用swfit中的积累,不断地去修正更新 之前的教程 swift单例模 ...
- swift学习笔记 - swift中常用关键字
swift中常用关键字 **用作声明的关键字: ** class.deinit.enum.extension.func.import.init.let.protocol.static.struct.s ...
随机推荐
- Fantageek翻译系列之《使用Autolayout显示变化高度的UITableViewCell》
这篇博客主要在于,解释如何通过仅仅使用Autolayout很很少的代码,显示高度不同的Cell.虽然标题说的是TableView,但是CollectionView同样适合.但是,这种方法只使用iOS7 ...
- Android SQLite API的使用(非原创)
1.使用SQLite的API来进行数据库的添加.删除.修改.查询 package com.example.sqlitedatabase.test; import android.content.Con ...
- 理解SQL SERVER中的分区表(转)
简介 分区表是在SQL SERVER2005之后的版本引入的特性.这个特性允许把逻辑上的一个表在物理上分为很多部分.而对于SQL SERVER2005之前版本,所谓的分区表仅仅是分布式视图,也就是多个 ...
- ADO.Net总结
ADO.NET简介 一. ADO.NET的组成(ADO.NET是什么?能干什么)客户体验 ADO.NET就是一组类库可以让我们通过程序的方式访问数据库 ADO.NET主要包括5个对象, ...
- ORACLE控制文件一致性【weber出品】
一.首先控制文件有什么作用呢? 控制文件记录了如下信息:1.数据库的创建时间2.数据文件的位置3.日志文件的位置等作用是指导数据库 找到数据文件,日志文件并将数据库启动到 open 状态. 与其用文字 ...
- (一)原生JS实现 - 基本类方法
类 var Class = { create: function() { return function() { this.initialize.apply(this, arguments); } } ...
- 4、记录1----获取hdfs上FileSystem的方法 记录2:正则匹配路径:linux、hdfs
/** * 获取hadoop相关配置信息 * @param hadoopConfPath 目前用户需要提供hadoop的配置文件路径 * @return */ public static Config ...
- CAS单点登录原理以及debug跟踪登录流程
CAS 原理和协议 基础模式 基础模式 SSO 访问流程主要有以下步骤: 1. 访问服务: SSO 客户端发送请求访问应用系统提供的服务资源. 2. 定向认证: SSO 客户端会重定向用户请求到 SS ...
- visual studio 未将对象引用设置到对象的实例
我今天在win10上安装了Visual Studio 2015,结果新建项目后在模板中选择一项后就会弹出一个对话框: 查了许多种方法后,下面这个方法解决了我这个问题: 著作权归作者所有.商业转载请联系 ...
- 浅析Javascript原型继承(转)
引自: http://blog.csdn.net/kittyjie/article/details/4380918 原作者解释的浅显易懂,非常不错的JavaScript prototype总结 JS没 ...