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 ...
随机推荐
- C#编写Windows服务程序图文教程(转载)
Windows Service这一块并不复杂,但是注意事项太多了,网上资料也很凌乱,偶尔自己写也会丢三落四的.所以本文也就产生了,本文不会写复杂的东西,完全以基础应用的需求来写,所以不会对Window ...
- C#图像处理(5):无损保存图片
C#使用默认方法对图像进行保存的时候图像会有损失,以下提供无损保存的方法: /// <summary> /// 无损保存图片 /// </summary> /// <pa ...
- Windows命令行(DOS命令)教程 -1 (转载) http://www.pconline.com.cn/pcedu/rookie/basic/10111/15325.html
一.命令行简介 命令行就是在Windows操作系统中打开DOS窗口,以字符串的形式执行Windows管理程序. 在这里,先解释什么是DOS? DOS--Disk Operation System 磁盘 ...
- C#界面设计疑问2:panel摆放问题
1.问题1是这样的,网友意思让使用一个按键对应显示一个panel 即,http://zhidao.baidu.com/question/1924974374730559427.html 2.那么我在设 ...
- MYSQL常用简单语句
使用SQL语法大写,增加可读性(小写部分就是自己数据库写的表/字段喽,具体你懂得...). 创建数据库:CREATE DATABASE mysql_db;删除数据库:DROP DATABASE mys ...
- JQuery实现倒计时效果
首先:引入jquery文件 <script type="text/javascript" src="http://www.cnblogs.com/Content/P ...
- 【4】python核心编程 第七章-映射和集合类型
1.映射类型的相关函数 函数 操作 dict([container]) 创建字典的工厂函数.如果提供了容器类(container) , 就 用其中的条目填充字典,否则就创建一个空字典. len(map ...
- 用python随机生成数据,再插入到postgresql中
用python随机生成学生姓名,三科成绩和班级数据,再插入到postgresql中. 模块用psycopg2 random import random import psycopg2 fname=[' ...
- IOS 推送原理
最近两天在研究ios的消息推送机制.研究这个东西,还是充满兴趣的. Push的原理: Push 的工作机制可以简单的概括为下图 图中,Provider是指某个iPhone软件的Push服务器,这篇文章 ...
- jquery 替换元素函数
1.replaceWith()使用括号内的内容替换所选择的内容.$("#div").replaceWith("<div id="div2"> ...