Swiftui 将列表中的选定项存储在@EnvironmentObject变量中

Swiftui 将列表中的选定项存储在@EnvironmentObject变量中,swiftui,Swiftui,这是我的一段游戏列表视图代码。如果您选择了一个游戏,您将与该游戏的玩家一起进入第二个列表视图。然后是关于玩家和游戏组合的详细视图。还有其他需要参考游戏的视图。因此,我将“选定”游戏设置为EnvironmentObject变量(这是一个包含数据的数组)。这样,它总是可用的 因为不需要将“game”传递给UserList,所以我在那里删除了它,所以它是UserList() 在执行NavigationLink之前,我想将所选游戏分配给selectedGame。我该怎么做 @Environmen

这是我的一段游戏列表视图代码。如果您选择了一个游戏,您将与该游戏的玩家一起进入第二个列表视图。然后是关于玩家和游戏组合的详细视图。还有其他需要参考游戏的视图。因此,我将“选定”游戏设置为EnvironmentObject变量(这是一个包含数据的数组)。这样,它总是可用的

因为不需要将“game”传递给UserList,所以我在那里删除了它,所以它是UserList()

在执行NavigationLink之前,我想将所选游戏分配给selectedGame。我该怎么做

    @EnvironmentObject var selectedGame : Game

      ...

            List(games) { game in
                NavigationLink(destination: UserList()) {
                    CellRow(game: game)
                }
            }

要传递对象,可以使用
UserList().environmentObject(self.selectedGame)
作为链接的目标。我猜这个选择是在别的地方做的?您没有提到如何在游戏列表中填充
selectedGame
。我在SceneDelegate.swift中填充了selectedGame。当用户在列表(游戏)视图中选择游戏时,我希望SelectedName替换为列表中选定的游戏。现在不行了。。。我仍然可以看到我放在SceneDelegate中的数据(在UserList中)。完成选择后,可以通过视图上的属性或环境变量将其传递给UserList视图