ios - 在 Swift 4 中从另一个 View Controller 获取数据(不是通过向前或向后传递数据)

标签 ios swift viewcontroller

假设我有 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/

相关文章:

swift - 通用协议(protocol)方法 swift 无法将类型识别为类型

swift - 高阶函数赋值

ios - Swift iOS - 在 View 更改后使用哪个 viewController 生命周期事件将数据发送到 Firebase

objective-c - 带有 Mac 服务器的 iOS 客户端应用程序

html - 如何让小内容填充UIWebView?

iphone - 如何更改 NSURLConnection 的优先级?

ios - 在 View Swift 中创建滑动动画

Swift:为 ViewController 中的私有(private)函数创建单元测试

swift - 使用闭包将变量信息传递给第一个 VC 时出现问题

ios - 画一个实心半圆