我弄清楚了如果我们更新或增加金额,如何在SwiftUI中更改NavTitle。
class User: ObservableObject {
@Published var first = "xxxxx"
@Published var last = "yyyyyyyyyy"
@Published var totalAmount = 0
@Published var totalpieces = 0
}
struct testTextfield: View {
@ObservedObject var user = User()
func update() {
user.first = "firstnametest"
user.last = "lastname"
user.totalAmount += 1
user.totalpieces += 1
print(user.totalAmount)
}
var body: some View {
NavigationView {
Form{
VStack{
Text("\(user.first) \(user.last)")
TextField("first", text: $user.first)
TextField("last", text: $user.last)
Button(action: {
self.update()
}) {
Text("push button")
}
}
}
.navigationBarTitle("\(user.totalpieces, specifier: "%.0f") pieces", displayMode: .inline)
}
}
}
但是打印语句正确并正确增加,但是顶部导航栏中的数量仍然为0。
缺少什么吗?
答案 0 :(得分:1)
这有效:
.navigationBarTitle("\(self.user.totalpieces.description ) pieces", displayMode: .inline)
我猜这是在使用说明符并将其与'_FormatSpecifiable'一起使用时的错误