在这种特定情况下,当我尝试更改@EnvironmentObject的时@Published var,我发现该视图并没有立即失效并立即更新。相反,仅在离开模态并返回后,才会反映对变量的更改。
import SwiftUI
final class UserData: NSObject, ObservableObject {
@Published var changeView: Bool = false
}
struct MasterView: View {
@EnvironmentObject var userData: UserData
@State var showModal: Bool = false
var body: some View {
Button(action: { self.showModal.toggle() }) {
Text("Open Modal")
}.sheet(isPresented: $showModal, content: {
Modal(showModal: self.$showModal)
.environmentObject(self.userData)
} )
}
}
struct Modal: View {
@EnvironmentObject var userData: UserData
@Binding var showModal: Bool
var body: some View {
VStack {
if userData.changeView { …Run Code Online (Sandbox Code Playgroud) swiftui ×1