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

SwiftUI中管理alert的简便方法

本文价值与收获

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

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类中来重用这些特定于警报的逻辑:

你可能感兴趣的:(SwiftUI中管理alert的简便方法(含源码))