更改/更新多个视图中的全局变量 (SwiftUI)



我正在创建一个应用程序,您可以在其中获得金币和经验值进行升级。我有一个问题,如果我使用全局变量,它们根本不会更改视图(家庭和商店)上的数字,并且当我为此使用类(带有@environmentObject和@published)时,它们只会在一个视图中更改。例如:如果我在家中添加经验值,它会更改级别例如。从 1 到 2,然后将 XP 重置为 0,但它在商店中不会更改它,它仍然显示等级 1 和 6/10 XP。但它应该是 2 级和 0/10 xp。谁能帮忙?

你对@environmentObject和@Published的方法是正确的。您需要一个中央状态持有者,ViewModel等。如果在开始时创建它的实例并将其作为需要它的 environmentObject 传递,那么这个单个实例应该可以在每个视图中访问。在视图中,您可以订阅@Published变量。

相关内容

  • 没有找到相关文章

最新更新