![](/img/trans.png)
[英]SwiftUI, navigationBarItems not working after programatically dismissing modal
[英]Fire some code when dismissing SwiftUI modal
我有一個用 SwitftUI 構建的模式,它有一個帶有onCommit:
的TextField
onCommit:
代碼,當用戶在鍵盤上點擊“返回”時,該代碼將用戶輸入從@State
變量保存到文件中。
但是,如果用戶在TextField
鍵入內容,然后在不按“返回”的情況下關閉模式,則onCommit:
代碼不會觸發並且用戶輸入保持未保存狀態。 當我的模態視圖被解除時,如何觸發一些訪問內部變量的代碼?
請嘗試以下操作:
取而代之的是在你的模態上有一個私有的 @State 變量,讓它成為你從調用站點傳遞到模態的內部@Binding
。 這樣修改后的綁定變量在調用者和模態視圖上都可用。
import SwiftUI
struct ContentView: View {
@State var dismiss = false
@State var txt = ""
@State var store = ""
var body: some View {
VStack {
Text("modal").sheet(isPresented: $dismiss, onDismiss: {
self.store = self.txt
}) {
TextField("txt", text: self.$txt) {
self.store = self.txt
}.padding().border(Color.red)
}.onTapGesture {
self.dismiss.toggle()
}
Text(store)
}
}
}
struct ContetView_Preview: PreviewProvider {
static var previews: some View {
ContentView()
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.