我有一个变量名为索引,装饰 @State ,我想更新值时,点击设置工具栏按钮。
工具栏按钮的块被执行,但index的值仍然是-1。
我调试并检查了currentIndex的值,它仍然是-1。
import SwiftUI
import SwiftData
struct HomeView: View {
@State var isPresentingAddView = false
@State var index = -1
var body: some View {
NavigationStack() {
VStack(alignment: .leading) {
Spacer()
}
.navigationTitle(Text("title"))
.navigationBarTitleDisplayMode(.inline)
.toolbar {
ToolbarItem(placement: .topBarTrailing) {
Button {
index = 1
isPresentingAddView = true
} label: {
Label("setting", systemImage: "plus")
}
}
}
}
.sheet(isPresented: $isPresentingAddView) {
let currentIndex = index
}
}
}
字符串
工具栏按钮块代码在工作表块代码之前执行
1条答案
按热度按时间fhity93d1#
你还没有在任何地方读取
body
中的index
,所以依赖关系还没有建立,通常你最终会添加代码来读取它,但与此同时你可以这样做:字符串
首选的方法是使用不同的工作表修改器,使用自定义值而不是bool,那么你根本不需要bool,例如。
型
另一个例子是在文档中:https://developer.apple.com/documentation/swiftui/view/sheet(item:ondismiss:content:)