반응형

 

Hacking with Swift 사이트의 강좌 번역본입니다.

 

[원문 : https://www.hackingwithswift.com/quick-start/swiftui/how-to-show-multiple-alerts-in-a-single-view]

 

How to show multiple alerts in a single view

 

SwiftUI는 단일 경고창을 보여주는 것을 비교적 쉽게 만들수 있지만, 단일 뷰에 2개 이상의 경고창을 보여주려는 경우에는 까다롭습니다 - 예를들어, 하나의 경고창은 동작하지만 다른 것은 동작하지 않습니다.

 

이를 해결하기 위해서, 각 뷰에 하나의 이상의 alert() modifier를 붙여야 합니다. 제한하는 것으로 들리지만, 기억하세요: 경고창을 동일한 뷰에 붙일 필요가 없습니다 - 어디에든 붙일 수 있습니다. 사실상, 보여주는 것(예를 들어 버튼)에 직접 붙여넣는 것이 가장 좋은 작업이라는 것을 알수 있을 것입니다.

 

예제로, 각각 경고창을 보여주는 것을 제어하는 2개의 @State properties를 정의하는 코드를 작성할 수 있습니다. 동일한 VStack alert()modifiers 모두 붙여넣는 대신에, 경고창을 보여줄 책임이 있는 버튼에 각각 붙여넣습니다. 

struct ContentView: View {
    @State private var showingAlert1 = false
    @State private var showingAlert2 = false

    var body: some View {
        VStack {
            Button("Show 1") {
                self.showingAlert1 = true
            }
            .alert(isPresented: $showingAlert1) {
                Alert(title: Text("One"), message: nil, dismissButton: .cancel())
            }

            Button("Show 2") {
                self.showingAlert2 = true
            }
            .alert(isPresented: $showingAlert2) {
                Alert(title: Text("Two"), message: nil, dismissButton: .cancel())
            }
        }
    }
}

 

alert() modifiers 모두 *VStack으로 이동시키는 경우에, 하나만 동작하게 되는 것을 알게 될 것이며, 위의 접근법이 유용한 이유입니다.

반응형

'SwiftUI > Alerts and action sheets' 카테고리의 다른 글

How to show a context menu  (0) 2019.11.22
How to show an action sheet  (0) 2019.11.22
How to add actions to alert buttons  (0) 2019.11.22
How to show an alert  (0) 2019.11.22
Working with presentations  (0) 2019.11.22
Posted by 까칠코더
,