我正在自己制作一个 ToDo 列表应用程序以尝试熟悉 iOS 开发,但我遇到了一个问题:
我有一个单独的View
链接来输入一个带有TextField
. 这是此文件的代码:
import SwiftUI
struct AddTask: View {
@State public var task : String = ""
@State var isUrgent: Bool = false // this is irrelevant to this problem you can ignore it
var body: some View {
VStack {
VStack(alignment: .leading) {
Text("Add New Task")
.bold()
.font(/*@START_MENU_TOKEN@*/.title/*@END_MENU_TOKEN@*/)
TextField("New Task...", text: $task)
Toggle("Urgent", isOn: $isUrgent)
.padding(.vertical)
Button("Add task", action: {"call some function here to get what is
in the text field and pass back the taskList array in the Content View"})
}.padding()
Spacer()
}
}
}
struct AddTask_Previews: PreviewProvider {
static var previews: some View {
AddTask()
}
}
所以我需要将输入的任务变量插入到数组中,以便在我的主ContentView
文件的列表中显示。
这是ContentView
供参考的文件:
import SwiftUI
struct ContentView: View {
@State var taskList = ["go to the bakery"]
struct AddButton<Destination : View>: View {
var destination: Destination
var body: some View {
NavigationLink(destination: self.destination) { Image(systemName: "plus") }
}
}
var body: some View {
VStack {
NavigationView {
List {
ForEach(self.taskList, id: \.self) {
item in Text(item)
}
}.navigationTitle("Tasks")
.navigationBarItems(trailing: HStack { AddButton(destination: AddTask())})
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
}
我需要一个函数来获取TextField
在ContentView
List
-谢谢您的帮助