【发布时间】:2021-09-01 19:23:54
【问题描述】:
我正在尝试让用户输入两个数字,然后显示这些数字并将它们相加。目前,为了更新状态变量,您需要按回车键。有没有办法像文本一样更新状态?我也将代码作为字符串输入,但无法将其转换为 int,因此可以正确地将数字相加。如果有人知道如何正确转换,我将不胜感激。
struct ContentView: View {
@State private var numOne: Int = 0
@State private var numTwo: Int = 0
var body: some View {
NavigationView {
VStack {
Form {
Section {
TextField("Number One", value: $numOne, formatter: NumberFormatter())
.keyboardType(.numberPad)
TextField("Number Two", value: $numTwo, formatter: NumberFormatter())
.keyboardType(.numberPad)
}
NavigationLink(
destination: addedView(numOne: $numOne, numTwo: $numTwo),
label: {
Text("Navigate")
}
)
}
}
}
}
}
struct addedView: View {
@Binding var numOne: Int
@Binding var numTwo: Int
@State private var added: Int = 0
var body: some View {
VStack {
Text("\(numOne)")
Text("\(numTwo)")
}
}
}
【问题讨论】:
-
您希望在数字实时更新时显示这些数字吗?或者与您如何在
NavigationLink的目的地显示它们有关? -
@George 我试图让文本字段接受作为 int 输入的数字或将输入的字符串转换为 int。我正在尝试将用户输入的两个数字相加,但是当我将其作为字符串执行时,它只是将数字放在一起而不是相加。