我有一个关于 Swift 的问题,我无法理解。我有一个很简单的看法。这是一个列表,您可以在其中写下每个玩家的姓名,一旦您点击返回,名称就会通过onCommit
附加到数组playerArray
中。到目前为止,这工作正常。
现在我想将此数组中的名称传递给另一个视图。我怎么做?我是否使用@EnvironmentObject
,是否将其保存到@AppStorage
或者我需要使用/保存到Core Data
然后在我需要的视图中获取数据?
在下一个视图中,我想先显示玩家 1 的姓名,然后在他完成游戏后显示玩家 2 的姓名,当他完成游戏后,再显示玩家 3 的姓名,依此类推。当每个人都玩游戏时,我需要所有的名字再次用于记分牌。在写下来的时候,我想我还需要一种方法来将每个玩家的得分与名字绑定。
稍后我还希望有两支球队,每支球队有两名或更多球员。那里的顺序是A队,玩家1;B队,球员1;A队,选手2;B队,玩家2等等。
任何关于如何使这成为可能的提示都会很棒。如果我需要使用 Core Data 来正确执行此操作,那么我将深入研究 Core Data。
谢谢!
https://i.stack.imgur.com/EgJ3p.gif
import SwiftUI
struct ContentView: View {
@State var playerField = ""
@State var playerArray: [String] = []
var body: some View {
VStack {
List {
ForEach(playerArray, id: \.self) { data in
Text(data)
}
TextField(
"Name",
text: $playerField,
onCommit: {
playerArray.append(playerField)
playerField = ""
}
)
} // List
} // VStack
} // some View
} // ContentView: View
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}