Xcode 10, Swift 4 - 如何跨多个视图控制器传输数据?

use*_*738 1 uiviewcontroller ios firebase swift swift4

我目前正在开发一个应用程序,但在发布事件时遇到了问题。

我在多个视图(7 个屏幕)的序列中收集数据,并希望一次最终存储数据(或在最终视图中显示所有数据)。例如,这些数据是位置信息、用户信息、事件图像、评论、事件类别……如果我在一两个视图中收集数据,我知道如何将数据存储在数据库/存储(firebase)中。但是在我的用例中,我有七个视图,我找不到任何优雅的方法。

使用 Xcode 10 做到这一点的最佳方法是什么?

Har*_*kar 7

您可以使用结构如下代码。为该结构中的所有屏幕创建所有必需的变量(如字符串、图像等)。你可以从任何 ViewController 访问它。

struct InputDetails {
    static var details: InputDetails = InputDetails()

    var city: String = ""
    var lat: String = ""
    var long: String = ""
}
Run Code Online (Sandbox Code Playgroud)

现在要增加价值

InputDetails.details.city = textfiels.text
Run Code Online (Sandbox Code Playgroud)

现在访问最后一个屏幕中的第一个屏幕值

print(InputDetails.details.city)
Run Code Online (Sandbox Code Playgroud)

一旦您的 API 调用或以上结构使用结束,请确保重置所有详细信息,如下所示。

InputDetails.details = InputDetails()
Run Code Online (Sandbox Code Playgroud)