从另一个.swift文件读取/写入一个变量
我有两个ViewControllers和两个.swift类文件。从另一个.swift文件读取/写入一个变量
事情是我有一个在第一个ViewController中声明的变量,它将填充用户在第一个视图中输入的值。但是,然后我想在另一个视图中显示该值(即时通讯使用标签栏控制器)。
但问题是我不知道如何从SecondViewController.swift参考变量,因为变量在FirstViewController.swift
共享数据的协议/委托方法见:
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更简单地保存:
感谢您的帮助! – LPS 2014-09-28 19:05:22
享受。如果您遇到问题,请发布代码。 – 2014-09-28 19:06:10
宣布有移动数据两种常用的方法。如果您只想将实例数据(ViewController1的当前实例)移动到ViewController2,则可以通过segue和prepareForSegue函数传递数据。这是学习最重要的要点之一。我将链接到下面的一些教程。请记住,Xcode 6已经发展并且语法可能会稍微改变。因此,对于函数prepareForSegue,您需要在文档中通过命令单击swift文件中的“prepareForSegue”来查找它,它会将您带到可以剪切粘贴的文档中。
http://bharathnagarajrao.wordpress.com/2014/06/17/swiftly-learning-swift/
来传递数据的其他常见的方法是让数据通过持久保存到一个文件中。另一组链接。我还建议去github上搜索有关prepareForSegue和Swift的项目以获取更多示例。
连接感谢您的答案。即时通讯阅读教程,以使用PrepareForSegue功能,但主要的例子是使用导航控制器,但在我的项目即时通讯使用Tab Bar控制器。你知道如何用标签栏实现该方法吗? – LPS 2014-09-28 18:33:45
好的,在标签栏上,当你来回打开之前打开的那个视图的实例,并且不会延续到一个新的实例。您可以使用协议/委托方法共享信息,也可以将数据保存到文件并检索。 – 2014-09-28 18:39:27
欢迎使用OS!如果你可以提供你的代码,你可以从别人那里获得更多的帮助。没有可重复的数据和代码通常很难看到发生了什么。 – jazzurro 2014-09-28 15:33:32
我有很多代码,因为我从JSON格式的网站获取天气。但事情是在FirstViewController我有一个textField,我想显示在另一个ViewController用户输入的值。两个viewController都通过标签栏控制器 – LPS 2014-09-28 18:35:55