好吧,我承认我喜欢这样的多个 StoryBoard 组织的方式,学习了!

以下转载内容很不错,后续补充从官方文档疏理出来的脉络,确实很好的用法。

Storyboard 跳转 和 传值   

写在前面:

因为苹果推 Storyboard 而且 目前来看, Apple Watch 也是用 Storyboard 就知道, 明天应用估计都是 Storyboard 的天下了.

(水平有限, 不对之处在所难免, 望海涵)

很多人似乎还是在用 XIB, 对 Storyboard 如何进行跳转 似乎 懵懵懂懂...

好吧, 鉴于 早上群里, 有人问 怎么跳转, 怎么传值 等等问题. 就做下总结, 同时为大家 提供一些方法和参考.

------------------

1. 最简单的方法

拖拽, 这个就不用多解释了吧. 直接拖拽到另一个视图控制器, 选择 show, 就行了.

2. 利用 Segue 方法 (这里主要是 方法1 的传值)

连好线, 点击 连线中间部分, 设置 Identifier.

然后 调用 performSegueWithIdentifier 方法.

(注: Demo 里面, 是直接将 TableViewController 和 SecondViewController 进行连线, 而不是 点击 Cell 的 indicator 进行连线)

执行以下 方法, 就可以进行 跳转操作了.

复制代码
  1. performSegueWithIdentifier("SecondSegue", sender: self)

如何传值?

很简单, 需要调用 prepareForSegue 方法 (因为这里是 父视图 -> 子视图 传值, 所以要用 destinationViewController)

复制代码
  1. override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
  2.     var theSegue = segue.destinationViewController as SecondViewController
  3.     theSegue.text = "Pass"
  4. }

(注: 这里, Swift 的 自动补全可能失效, 所以 如果没有出现 destinationViewController, 没关系往后打.)

这里的 text 是我在 子视图中 声明的变量, 用来设置 Label 的 值.

PS:
一般, 我们都用使用连线的方式, 这里告诉大家另一个方式, 就是用 viewWithTag. 我先前在 Label 控件 Tag 中设置为 100.

当然你也可以使用连线, 使用 viewWithTag 可以在我们自定义 Cell 的时候 方便用到, 而不需要创建单独的 Cell class.

3. 利用 self.storyboard

利用 self.storyboard 方法, 就不需要进行 连线, 一样可以进行视图之间的跳转. 但是必须要设置 Storyboard ID.

然后利用 如下方法进行 跳转 和 传值

复制代码
  1. var thirdVC = self.storyboard?.instantiateViewControllerWithIdentifier("ThirdViewController") as ThirdViewController
  2. thirdVC.text = "Pass"
  3. self.navigationController?.pushViewController(thirdVC, animated: true)

因为是在 同一个 Storyboard 里面进行跳转, 所以 self.storyboard 就可以满足需求.

不明白? 看最后一个方法:

4. 利用 UIStoryboard

XIB 方法, 我们需要 用到 nibName, 同样 如果我们想要 分离多个 sence 在不同的Storyboard 里面, 怎么办?

这个时候, 就不能使用 self.storyboard 了.

而是:

复制代码
  1. var storyboard = UIStoryboard(name: "New", bundle: nil)
  2. var newVC = storyboard.instantiateViewControllerWithIdentifier("NewViewController") as NewViewController
  3. newVC.text = "Pass"
  4. self.navigationController?.pushViewController(newVC, animated: true)

是不是 和 XIB 有异曲同工的感觉, 这样就可以把 Storyboard 分几个, 每个里面放几个 Sence.

这样的好处就是, 当你需要做多个不同功能的模块的应用, 分离到不同的 Storyboard 中, 彼此互不影响.

相对于 XIB 来说, 每个文件夹 只需要 1 个 Storyboard 文件, 和 Swfit 文件就可以了.

[ 此帖被dongeyoung在2014-11-23 04:55重新编辑 ]

时间: 2024-10-27 14:10:44

好吧,我承认我喜欢这样的多个 StoryBoard 组织的方式,学习了!的相关文章

苹果最新AI人才报告:最喜欢“挖角”微软和亚马逊,但钱和手速都落后对手

日前,为了了解苹果公司招募AI人才的方式,美国著名商业杂志<Fast Company>根据公开的Linkedln个人资料建了一个数据库.该数据库收集了600多名专门从事机器学习.计算机视觉.自然语言处理和与AI相关工作的苹果公司员工的分析结果,这些员工在Linkedln的主页简介上都会标明自己的工作为"科学家"或"研究人员",以及在简历上会列举AI相关的技能. 首先,要声明的一点在于这份分析报告确实存在一些不足.因为这些员工并不会在Linkedln上完全

PHP的XML分析函数

xml|函数 首先我得承认我喜欢计算机标准.如果每个人都遵从这个行业的标准,互联网将会是一个更好的媒体.使用标准化的数据交换格式才能使开放的和独立于平台的计算模式切实可行.这就是我作为XML爱好者的原因. 幸运的是,我最喜爱的脚本语言不但支持XML而且对其支持正不断加强.PHP可以让我迅速将XML文档发布到互联网上,收集XML文档的统计信息,将XML文档转换成其它格式.例如,我时常用PHP的XML处理能力来管理我用XML所写的文章和书. 本文中,我将讨论任何用PHP内建的Expat解析器来处理X

PHP的XML分析函数(转) (介绍这个PHP里的XML分析函数的文章可不太有哦。。 看过这篇就应该清楚点了吧...

xml|函数 PHP的XML分析函数 首先我得承认我喜欢计算机标准.如果每个人都遵从这个行业的标准,互联网将会是一个更好的媒体.使用标准化的数据交换格式才能使开放的和独立于平台的计算模式切实可行.这就是我作为XML爱好者的原因. 幸运的是,我最喜爱的脚本语言不但支持XML而且对其支持正不断加强.PHP可以让我迅速将XML文档发布到互联网上,收集XML文档的统计信息,将XML文档转换成其它格式.例如,我时常用PHP的XML处理能力来管理我用XML所写的文章和书. 本文中,我将讨论任何用PHP内建的

反波访谈:听keso乱弹琴(下)

第一次见keso是2006年初为<时尚先生>策划的一个专题拍片,一眼看上去,他就是个典型的山东大汉,一袭长发像个摇滚歌手.与blog上嬉笑怒骂,指点IT江山截然不同的是,面前的这个keso不怎么爱说话,飞猪后来接触keso比我多,他也印证了我对keso的印象.那么,真实生活里的keso,到底是怎样一个人呢?今天的反波人民大会谈,飞猪继续对话keso. 飞猪:你是哪里人? Keso:青岛人. 飞猪:你在大学的时候学的是什么? Keso:学中文. 飞猪:你那时候想在毕业以后做什么工作? Keso:

暴雪Blizzard被DDoS攻击 PoodleCorp说你推文转发量超过2千 我就停止攻击

今天,在黑客组织PoodleCorp宣称其对暴雪公司进行了DDoS攻击之后,暴雪公司的服务器被下线.1个小时后,服务器已恢复正常运行.暴雪公司在推特上承认了这一事件. 暴雪公司的推文写道: "我们监测到针对网络提供商的DDoS攻击.该攻击正在影响游戏的延时/接入." 攻击只持续了大约1小时.随后PoodleCorp自行终止了攻击.PoodleCorp曾在8月初和8月末攻击暴雪公司.他们向游戏玩家承诺,如果他们的一篇推文转发量达到2000,就终止攻击. 许多玩家都愿意转发.暴雪公司的服务

【UNREAL ENGINE 游戏开发】开篇之为什么现在就要抱紧UE的大腿!(另附学习资料/交流群)

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/unreal-engine-game/2129.html 自从开始自学Unreal Engine后,身边的朋友.群里的童鞋们都在问:Himi,为什么要转UE了?UE到底好在哪里?与U3D比优势到底在哪里?等各种问题.而且解释过的问题,等会还要再解释给没看到的童鞋们 - 所以Himi特意来写篇博文,统一解释UE对于我为什么会有这么大的诱惑力!

《Photoshop修色圣典——PPW专业照片修正流程与技巧》目录—导读

版权声明 Photoshop修色圣典--PPW专业照片修正流程与技巧 Modern Photoshop Color Workflow The Quartertone Quandary, the PPW, and Other Ideas for Speedy Image Enhancement Copyright 2013 by Dan Margulis ISBN: 978-0-9882808-0-9 MCW Publishing http://www.moderncolorworkflow.co

Sebastien Gabriel 讲述自己加入谷歌的故事

这篇好文由 Sebastien Gabriel 亲历讲述自己由非科班设计爱好者到谷歌上门希望他加入的炒鸡正能量故事,刚学设计的同学们除了可以给自己增加信心,还可以借鉴一下作者的个人营销,硬实力 + 好营销,说不定也会有大公司找上你唷. 正文开始: 2年多前我加入了谷歌,那时有些人向我咨询我进入谷歌的故事,感受点经验.我答应了下来,但是实际上并没有真正做到.或许那时我羞于表达,或许我没时间或者我觉得描述这事儿是个错误,因为它不够有趣. 现在我决定信守承诺写下它.希望这文章写得不算迟,对一些人还算有

人生最重要的时候,从30岁到35岁:为生命多积累一些厚度

常常思考一个问题:是不是考虑做2年开发,打2年酱油,然后结婚生子,这样到底行不行?无论你是男是女,人生是一场独自修行的道路.如果在可以选的时候,还是选择靠自己吧. 无论你是要养家还是要实现人生价值,如果你处在迷茫之中,希望这篇文章可以传达一些正能量,可以帮到你.--当然这篇文章是转的呀,但真的很有理啊,假如看了这篇文章,会影响到你的一生,那么我就觉得今天这一小时的时间花在这里值了.   你所有不曾料想过的问题,都会随着时间的推移而与你不期而遇:你所有曾经潇洒的随遇而安,同样也会随时间流逝而让你承