如何在不同的视图控制器之间更改相同的值?

Posted

技术标签:

【中文标题】如何在不同的视图控制器之间更改相同的值?【英文标题】:How can i change the same value between different view controllers? 【发布时间】:2020-03-08 05:19:16 【问题描述】:

我对 swift/programming 非常陌生,如果这是一个愚蠢的问题,很抱歉,如果我的问题不够清楚,我很抱歉。

名为“Money”的黄色标签在每个视图控制器中必须是相同的值,所以如果第一个视图控制器中的当前值是 1000,那么在第二个视图控制器中它也是 1000。

现在我按下那个按钮,上面写着“加钱 200”,而不是 1000,黄色标签现在有 1200。再次按下“加钱 200”,我得到 1400。在第二个 VC 中按下“加钱 400”,然后现在我得到了 1800。回到第一个 VC 并一遍又一遍地做。

我该怎么做?我搜索了答案,我发现的唯一一件事是如何将一个价值从一个 VC 转移到另一个,但我还没有找到任何地方如何来回转移价值。

那么谁能告诉我我该怎么做呢?或者至少为我指明正确的方向?

感谢您的关注:)

【问题讨论】:

不要在单独的view controller 中存钱value。相反,保存在全局变量中并在 view will appear 中更新。 【参考方案1】:

在您的 AppDelegate 中创建名为 money 的静态变量。

static var money = 1000

更新每个控制器的 viewWillAppear 中的黄色标签。

override func viewWillAppear(_ animated: Bool) 
    super.viewWillAppear(animated)
    yellowLbl.text = AppDelegate.money

您可以在代码中的任何位置更新变量。如果你想增加 200 的钱,你可以这样做。

AppDelegate.money += 200

【讨论】:

以上是关于如何在不同的视图控制器之间更改相同的值?的主要内容,如果未能解决你的问题,请参考以下文章

我将如何使用相同的视图控制器,但通过它传递不同的信息?

iOS - 如何在 Swift 的不同视图控制器中使用小视图

如何从 UiTableViewCell 更改视图控制器中字典的值

如何使按钮在不同的视图控制器上更改另一个按钮的标题

快速更改初始视图控制器

如何在 2 个不同的视图控制器之间传递信息?