【问题标题】:Read/Write a variable from another .swift file从另一个 .swift 文件读取/写入变量
【发布时间】:2014-09-28 15:25:17
【问题描述】:

我有两个 ViewControllers 和它们的 .swift 类文件。

问题是我在第一个 ViewController 中声明了一个变量,它将填充用户在第一个视图中输入的值。但后来我想在另一个视图中显示该值(我使用标签栏控制器)。

但问题是我不知道如何从 SecondViewController.swift 引用该变量,因为该变量是在 FirstViewController.swift 中声明的

【问题讨论】:

  • 欢迎来到操作系统!如果您可以提供代码,您将能够从某人那里获得更多帮助。如果没有可重现的数据和代码,通常很难看到发生了什么。
  • 我有很多代码,因为我以 JSON 格式从网站获取天气。但事情是在 FirstViewController 我有一个文本字段,我想在另一个 ViewController 中显示用户输入的值。两个 viewController 都通过 Tab Bar Controller 连接

标签: ios class variables viewcontroller tabbarcontroller


【解决方案1】:

关于共享数据的协议/委托方法见:

https://medium.com/swift-programming/ios-swift-protocols-and-delegates-7193f7f58b8a

http://www.raywenderlich.com/75289/swift-tutorial-part-3-tuples-protocols-delegates-table-views

为了使用 NSCoding 保存到文件,我今天早些时候在这里发布了代码:

SWIFT How to create a NSCoding Subclass and call it from another class?

如果你想用 NSUserDefaults 更简单地保存:

Store [String] in NSUserDefaults (Swift)

【讨论】:

    【解决方案2】:

    有两种常见的数据移动方式。如果您只想将实例数据(ViewController1 的当前实例)移动到 ViewController2,您可以通过 segue 和 prepareForSegue 函数传递数据。这是要学习的最重要的丁字裤之一。我将链接到下面的一些教程。请记住,Xcode 6 已经发展,语法可能会略有变化。因此,对于函数 prepareForSegue,您需要通过命令单击 swift 文件中的“prepareForSegue”一词在文档中查找它,它将带您到可以剪切粘贴的文档。

    http://makeapppie.com/2014/07/01/swift-swift-using-segues-and-delegates-in-navigation-controllers-part-1-the-template/

    http://bharathnagarajrao.wordpress.com/2014/06/17/swiftly-learning-swift/

    传递数据的另一种常见方法是通过保存到文件来使数据持久化。另一组链接。我还建议去 github 并搜索带有 prepareForSegue 和 Swift 的项目以获取更多示例。

    【讨论】:

    • 感谢您的回答。我正在阅读教程以使用 PrepareForSegue 功能,但主要示例使用的是导航控制器,但在我的项目中我使用的是选项卡栏控制器。你知道如何用标签栏实现那个方法吗?
    • 好的,在标签栏上,当您来回切换时,您会打开该视图的先前打开的实例,并且不要切换到新实例。您可以使用协议/委托方法共享信息,也可以将数据保存到文件并检索。
    猜你喜欢
    • 2021-01-23
    • 2012-10-22
    • 2012-07-22
    • 1970-01-01
    • 2018-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    相关资源
    最近更新 更多