如何轻松地将变量从一个视图传递到另一个视图?
Posted
技术标签:
【中文标题】如何轻松地将变量从一个视图传递到另一个视图?【英文标题】:How can I pass a variable from one view to another easily? 【发布时间】:2015-03-31 19:22:35 【问题描述】:所以我希望能够轻松地将变量从一个视图传递到另一个视图。我已经通过 Segue 看到了一些方法,但如果可能的话,我希望有比这更简单的方法。
有什么方法可以很容易地传输一个变量的内容并将其保存在另一个视图中。我知道这可能是不可能的。
如果这不可能,请有人解释如何使用 Segue 方法?我已经看到各种在线教程解释了如何做到这一点,但他们都将其应用于某种情况。我只想知道裸代码及其工作原理,然后将其应用于我自己的情况。所以基本上只是一种将变量从一个视图转移到另一个视图的方法,像我这样知识很少的人会理解。当我用其他语言编程时,我理解术语,但 swift 对我来说非常陌生。
我应该补充一点,我使用的编码语言是 swift。
如果有人可以帮助我,我将不胜感激。
谢谢
【问题讨论】:
如何更容易?只需要两行代码?关于他的主题有很多答案。您应该尝试实现其中之一,如果您有问题,请提出一个具体的问题。 它只是您想要在视图之间传递的一个变量吗? 使用prepareForSegue
是简单的方法...如果您实际上使用segues在视图控制器之间移动。你是? (我假设当您说“视图”时,您实际上是指“视图控制器”。如果不是,那么答案将会非常不同。)
@Swinny89 有多个变量需要介于两者之间。我现在正在研究单身课程 - 如果您认为我应该知道任何事情,请告诉我。我应该在我的问题中更清楚地说明我需要传输多个变量。谢谢
我已经更新了我的答案,以展示如何通过 prepareForSegue 传递多个变量。如果您的变量彼此之间没有很好的联系,那么为它们创建一个类可能会违反直觉。传递一个加载了这些变量的字典可能是一个很好的解决方案。
【参考方案1】:
如果您发送的只是一个变量,我会使用prepare for segue。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
if segue.identifier == "IdentifierOfSegueGoesHere"
if let destinationVC = segue.destinationViewController as? OtherViewController
destinationVC.dictionary = self.dictionary
如果您要传递大量数据,例如朋友列表等,然后我将创建一个单例类来存储可以从任何地方访问的他们。
如果您传递的多个变量没有足够的连接来创建单例类,那么您可以将它们放入字典并传递字典。
【讨论】:
【参考方案2】:这不是推荐的方法。如果您不是计算机科学纯粹主义者,则可以使用全局变量。这绕过了编译过程提供的保护。
【讨论】:
不鼓励全局变量 @Bluehound 出于兴趣,他们为什么气馁? 它们会影响性能,而且让所有东西都全球化也不是很安全。以上是关于如何轻松地将变量从一个视图传递到另一个视图?的主要内容,如果未能解决你的问题,请参考以下文章
通过 Laravel 中的 AJAX 发布请求将值从一个视图传递到另一个视图