写在前面的知识:
因为苹果推 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
2
3
4
|
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var theSegue = segue.destinationViewController as SecondViewController
theSegue.text = "Pass"
}
|
(注: 这里, Swift 的 自动补全可能失效, 所以 如果没有出现 destinationViewController, 没关系往后打.)
这里的 text 是我在 子视图中 声明的变量, 用来设置 Label 的 值.
PS:
一般, 我们都用使用连线的方式, 这里告诉大家另一个方式, 就是用 viewWithTag. 我先前在 Label 控件 Tag 中设置为 100.
当然你也可以使用连线, 使用 viewWithTag 可以在我们自定义 Cell 的时候 方便用到, 而不需要创建单独的 Cell class.
3. 利用 self.storyboard
利用 self.storyboard 方法, 就不需要进行 连线, 一样可以进行视图之间的跳转. 但是必须要设置 Storyboard ID.
|
1
2
3
4
5
|
var thirdVC =
self.storyboard?.instantiateViewControllerWithIdentifier("ThirdViewController")
as ThirdViewController
thirdVC.text = "Pass"
self.navigationController?.pushViewController(thirdVC, animated: true)
|
因为是在 同一个 Storyboard 里面进行跳转, 所以 self.storyboard 就可以满足需求.
不明白? 看最后一个方法:
4. 利用 UIStoryboard
XIB 方法, 我们需要 用到 nibName, 同样 如果我们想要 分离多个 sence 在不同的Storyboard 里面, 怎么办?
这个时候, 就不能使用 self.storyboard 了.
而是:
|
1
2
3
4
|
var storyboard = UIStoryboard(name: "New", bundle: nil)
var newVC = storyboard.instantiateViewControllerWithIdentifier("NewViewController") as NewViewController
newVC.text = "Pass"
self.navigationController?.pushViewController(newVC, animated: true)
|
是不是和XIB有异曲同工的感觉, 这样就可以把 Storyboard分几个, 每个里面放几个 Sence.
这样的好处就是, 当你需要做多个不同功能的模块的应用, 分离到不同的 Storyboard 中, 彼此互不影响.
相对于XIB来说, 每个文件夹只需要 1 个Storyboard文件, 和Swfit 文件就可以了.
以上叙述是小编给大家分享storyboard跳转传值的相关知识,希望大家喜欢。
相关文章
- 64M VPS建站:怎样优化以提高网站加载速度? 2025-06-10
- 64M VPS建站:是否适合初学者操作和管理? 2025-06-10
- ASP.NET自助建站系统中的用户注册和登录功能定制方法 2025-06-10
- ASP.NET自助建站系统的域名绑定与解析教程 2025-06-10
- 个人服务器网站搭建:如何选择合适的服务器提供商? 2025-06-10
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
-
2025-06-04 90
-
2025-06-04 32
-
2025-05-25 50
-
2025-05-25 31
-
2025-05-29 89

