美文网首页SwiftUI学习
SwiftUI的一个视图上有两个Alert,其中一个被覆盖

SwiftUI的一个视图上有两个Alert,其中一个被覆盖

作者: 纵横四海 | 来源:发表于2021-09-08 08:52 被阅读0次

我想将两个唯一的警报附加到同一Button视图。当我使用下面的代码时,只有底部的警报起作用。
是这样的,最近写了一个页面,有两个按钮点击之后都会出现Alert来提示用户,第二个是最近加的,结果提交了Code,第二天同事说之前的Alert失效了。大概就是这样子,第一个Alert点击之后不会弹出来了

  @State private var showFirstAlert = false
  @State private var showSecondAlert = false

VStack{
         Button(action: {
          showFirstAlert = true
  }) {
      Text("alert111111")
  }

 Button(action: {
        showSecondAlert = true
  }) {
        Text("alert22222")
  }
}
 
.alert(isPresented: $showFirstAlert) {
    // This alert never shows
    Alert(title: Text("First Alert"), message: Text("This is the first alert"))
}
.alert(isPresented: $showSecondAlert) {
    // This alert does show
    Alert(title: Text("Second Alert"), message: Text("This is the second alert"))
}

解决方案:

enum ActiveAlert {
    case first, second
}
struct ContentView: View {
    @State private var showAlert = false
    @State private var activeAlert: ActiveAlert = .first
    var body: some View {
            Button(action: {
          self.activeAlert = .first
          showAlert = true
  }) {
      Text("alert111111")
  }

   Button(action: {
            self.activeAlert = . second
            showAlert = true
    }) {
            Text("alert22222")
    }.alert(isPresented: $showAlert) {
           switch activeAlert {
             case .first:
                   return Alert(title: Text("First Alert"), message: Text("This is the first alert"))
              case .second:
                   return Alert(title: Text("Second Alert"), message: Text("This is the second alert"))
            }
        }
    }
}

相关文章

  • SwiftUI的一个视图上有两个Alert,其中一个被覆盖

    我想将两个唯一的警报附加到同一Button视图。当我使用下面的代码时,只有底部的警报起作用。是这样的,最近写了一个...

  • SwiftUI:ActionSheet 弹窗

    SwiftUI给我们Alert提供了一个或两个按钮来显示重要的公告,而sheet()给了我们用于在当前视图的顶部显...

  • iOS开发 - 如何在SwiftUI中显示模态视图?

    在SwiftUI中显示模态视图 简介 这里教大家如何弹出一个简单的模态视图。分别有两个页面,ContentView...

  • 为小组件构建 SwiftUI 视图

    为小组件构建 SwiftUI 视图为小组件构建 SwiftUI 视图

  • Android_SmartDeviceLink_Alert

    我的博客 Alerts(警报) alert是一个弹出窗口,其中包含一些文本行和可选的软按钮。当一个alert被激活...

  • iOS 不规则按钮点击事件(二)

    目标:一个正方形视图被分割成两个不规则视图 代码操作:我用了两个view 分别绘制成了两个不规则图形,其中两个不规...

  • SwiftUI 组件协议 View

    在 SwiftUI 中,这是一个视图协议,任何自定义的视图都遵循该协议,并实现协议属性 body 来提供具体的视图...

  • SwiftUI:Alert 弹窗

    如果发生重要事件,通知用户的一种常见方法是使用警报Alert弹窗-根据您的需要,该弹出窗口包含标题,消息和一个或两...

  • SwiftUI Modal Alert

    记录一个状态值,操作触发状态值的改变进而引发弹出动作 Modal .sheet(isPresented: >, ...

  • swiftUI官方教程解读

    swiftUI简介 swiftUI是wwdc2019发布的一个新的UI框架,通过声明和修改视图来布局UI和创建流畅...

网友评论

    本文标题:SwiftUI的一个视图上有两个Alert,其中一个被覆盖

    本文链接:https://www.haomeiwen.com/subject/iuomwltx.html