前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SwiftUI:Alert弹窗

SwiftUI:Alert弹窗

作者头像
韦弦zhy
发布2020-03-27 10:11:40
5.3K0
发布2020-03-27 10:11:40
举报
\color{red}{\Large \mathbf{Hacking \quad with \quad iOS: SwiftUI \quad Edition}}
\color{red}{\Large \mathbf{Hacking \quad with \quad iOS: SwiftUI \quad Edition}}
{\Huge \mathbf{Guess \ The \ Flag}}
{\Huge \mathbf{Guess \ The \ Flag}}

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

但是请考虑一下:何时应该显示警报以及如何显示Alert?视图是我们程序状态的函数,Alert也不例外。因此,我们不用说“显示警报”,而是创建警报并设置显示警报的条件。

基本的SwiftUIAlert具有标题,消息和一个关闭按钮,如下所示:

代码语言:javascript
复制
Alert(title: Text("Hello SwiftUI!"),
      message: Text("This is some detail message"),
      dismissButton: .default(Text("OK")))

如果需要,您可以添加更多代码以更详细地配置按钮,但这已经足够。更有趣的是我们如何显示警报:我们不将警报分配给变量,然后编写诸如myAlert.show()之类的东西,因为这将回到旧的“一系列事件”的思维方式。

相反,我们创建一些状态来跟踪警报是否显示,如下所示:

代码语言:javascript
复制
@State private var showingAlert = false

然后,我们将警报附加到用户界面的某处,告诉它使用该状态来确定是否显示警报。SwiftUI将观察showingAlert,并在它变为true时立即显示警报。

将按钮和他们放在一起,下面是一些示例代码,当点击按钮时会显示警报:

代码语言:javascript
复制
struct ContentView: View {
    @State private var showingAlert = false
    
    var body: some View {
        Button("Show Alert") {
            self.showingAlert = true
        }
        .alert(isPresented: $showingAlert) {
            Alert(title: Text("Hello SwiftUI!"),
                  message: Text("This is some detail message"),
                  dismissButton: .default(Text("OK")))
        }
    }
}

这会将警报附加到按钮上,但是说实话,在哪里使用alert()修饰符都没关系——我们要做的就是让Alert存在,并且在showAlert为true时显示。

仔细看看alert()修饰符:

代码语言:javascript
复制
.alert(isPresented: $showingAlert)

这是另一种双向数据绑定,这是因为SwiftUI会在警报解除后自动将showingAlert设置为false。

这是该项目概述的最后一部分,因此是开始使用真实代码的时候了。如果要保存已编程的示例,则应将项目目录复制到其他位置。

准备就绪后,将ContentView.swift重置成您最初创建项目时的开始方式,这样我们就可以从头开始。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档