SwiftUI-按钮操作以发出警报并采取行动
我正试图根据某个条件发送警报,但无论条件如何,导航链接都会执行。我希望能被拦截 目标:SwiftUI-按钮操作以发出警报并采取行动,swiftui,Swiftui,我正试图根据某个条件发送警报,但无论条件如何,导航链接都会执行。我希望能被拦截 目标: 如果条件不是me,则不要启动新视图 正在启动新视图,然后发出警报 我确信我的代码是错误的,但我不确定我应该如何实现这一点 提前谢谢 var body: some View { NavigationView { VStack { Button(action: {}) { //NavigationLink(destination: s
var body: some View {
NavigationView {
VStack {
Button(action: {}) {
//NavigationLink(destination: secondView()) {
NavigationLink(destination: checkState()) {
Text("Add to Cart")
}.padding()
.font(.system(size: 14))
.background(Color.red)
.foregroundColor(.white)
.cornerRadius(6)
}
}
}.padding()
} // End of the GetOrder Struct
struct GetdOrderView_Previews: PreviewProvider {
static var previews: some View {
GetdOrderView()
}
}
}
struct checkState: View {
@ObservedObject var calcCheck = MealOrder()
@State var showingAlert = false
@State var myToggle = false
var body: some View {
NavigationView {
VStack {
Button(action: {
//Enter Action here
if self.myToggle == true {
self.showingAlert = true
} else {
self.showingAlert = true
}
}) {
Text("This is a test")
}.padding()
.font(.system(size: 14))
.background(Color.blue)
.foregroundColor(.white)
.cornerRadius(6)
//Insert Alerts
.alert(isPresented: $showingAlert) {
if self.myToggle {
return Alert(title: Text("Showing Message"), message: Text("Cart is valid"), dismissButton: .default(Text("OK")))
} else {
return Alert(title: Text("Showing Alert"), message: Text("Cart Empty"), dismissButton: .default(Text("Cancel")))
}
}
}
}
}
}
struct secondView: View {
var body: some View {
VStack {
Text("This is the second test")
}
}
}
尝试以下方法
@State var activateLink = false
var body: some View {
NavigationView {
VStack {
NavigationLink(destination: checkState(), isActive: $activateLink) {
EmptyView()
}
Button(action: {
if _YOUR_CONDITION_HERE_ {
self.activateLink = true
}
}) {
Text("Add to Cart")
.padding()
.font(.system(size: 14))
.background(Color.red)
.foregroundColor(.white)
.cornerRadius(6)
}
}
.onAppear { self.activateLink = false }
}.padding()
}// End of the GetOrder Struct
谢谢你。今晚我将实施并让您知道。小的格式化修复