假设我有 View Controller A,其中有一个包含数据的数组。 现在我还有几个其他 View Controller (B、C、D 等),我需要该数组。
我知道我可以使用 segues 将数据转发到其他每个 View Controller 。但这对我来说似乎不是完美的解决方案,因为我每次都必须通过许多不同的 View Controller 传递数据
我宁愿有一个在 View Controller B 中定义的方法“从 View Controller A 获取数据”
(据我所知,向后传递数据不是我想要实现的,因为我不想更改 View Controller B 中的数组并将其传递回 View Controller A。我只想读取/获取其中的数据从 View Controller A 查看 Controller B。
有人可以给我指出一个解决方案吗?或者我是否必须将数据从 VC A 转发到 VC B?
我想这是一个品味问题,但我宁愿在 VC B/C/D 中编写代码,以防我需要来自 VC A 的数据,而不是每次将数据从 A 传递到每个其他 VC...
最佳答案
创建一个单例类。让我们说 DataManager。
class DataManager: NSObject {
// A Singleton instance
static let shared = DataManager()
// your array
var dataArray = [String]()
}
现在可以从应用程序中的任何位置访问该数组。
Print(DataManager.shared.dataArray)
关于ios - 在 Swift 4 中从另一个 View Controller 获取数据(不是通过向前或向后传递数据),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46716188/