반응형
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 |