SwiftUI中管理alert的简便方法(含源码)

SwiftUI中管理alert的简便方法

本文价值与收获

看完本文后,您将能够作出下面的界面

Jietu20200608-124536@2x.jpg
Jietu20200608-124558.gif

基础

要在SwiftUI中显示警报,请使用alert修饰符。我们可以通过isPresented实现控制alert显示和退出的功能。

struct MyView: View {
    
    @State private var isAlertActive = false
    private let alert = Alert(title: Text("Hello, world!"))
    
    var body: some View {
        Button("Show sheet", action: showSheet)
            .alert(isPresented: $isAlertActive, content: { alert })
        }
    }
}

很容易,对吧?嗯,这个基本示例是,但是我认为一旦要从同一屏幕上呈现多个警报或在整个应用中重复使用警报,就很难进行管理。

一个问题是,您到处都在重复isAlertActive逻辑。每当您从多个视图中呈现同一警报时,还必须复制警报生成逻辑。下面我们就来看看如何解决这个问题

AlertContext来解决这个问题

我们可以通过AlertContext类中来重用这些特定于警报的逻辑:

还有 73% 的精彩内容
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
支付 ¥1.59 继续阅读