SwiftUI Alert

  • 이번에는 SwiftUI에서 Alert 창을 띄우는 법에 대해 알아보겠다.
  • Swift 기본 문법을 숙지하고 있다는 가정 하에 작성되었다.

Alert 형태

  • Alert은 다음과 같은 파라미터를 갖는다.
  • title은 Alert 창의 큰 글씨 부분을,
  • message는 Alert 창의 작은 글씨 부분을,
  • dismissButton은 Alert 창을 닫는 역할을 한다.
Alert(title: Text, message: Text?, dismissButton: Alert.Button?)

Alert 띄우기

  • 다음 코드와 같이 버튼과 @State 변수를 만들어,
  • 버튼을 누르면 원하는 Alert 창이 나오게 할 수 있다.
struct ContentViewNine: View {
    @State private var showingAlert = false
    
    var body: some View {
        Button(action: {
            self.showingAlert = true
        }) {
            Text("Show Alert")
        }
        .alert(isPresented: $showingAlert) {
            Alert(title: Text("Title"), message: Text("This is a alert message"), dismissButton: .default(Text("Dismiss")))
        }
    }
}

Alert에 action 추가하기

  • 다음과 같이 Alert에 dismissButton 파라미터 대신
  • primaryButton과 secondaryButton을 사용하면 action을 추가할 수 있다.
struct ContentViewTen: View {
    @State private var showingAlert = false
    
    var body: some View {
        Button(action: {
            self.showingAlert = true
        }) {
            Text("Show Alert")
        }
        .alert(isPresented: $showingAlert) {
            Alert(title: Text("Title"), message: Text("Message"), primaryButton: .destructive(Text("Primary"), action: {
                // Some action
            }), secondaryButton: .cancel())
        }
    }
}

관련 글