Hacking with Swift 사이트의 강좌 번역본입니다.
[원문 : https://www.hackingwithswift.com/quick-start/swiftui/presenting-an-alert]
Presenting an alert
[동영상 강좌 : https://youtu.be/n2OC_bgn71g]
화면을 마무리 하기 위해 Confirm Order 버튼이 동작하게 하는 것, 1가지를 더 추가해야 합니다. 실제로 어딘가로 주문을 보내지 않을 것이지만, 모든 과정이 성공적으로 확인되었는지를 알리는 경고를 보여줄 것입니다.
이러한 form은 다른 것과 마찬가지로 @State 프로퍼티를 추가해야 하며, 이번에는 경고창을 보여줄것인지 아닌지를 추적합니다. 그리고 이곳이 SwiftUI의 반응형 능력이 명확해지길 바라는 곳입니다: UIKit에서 했던 것처럼 경고창을 보여줘 또는 경고창을 숨겨줘 라고 말하지 않지만, 그 대신에 경고창이 보여지는 조건은 다음과 같아라고 말하고 SwiftUI가 해당 조건을 충족할때를 알아내도록 합시다.
따라서, 우선 결제 경고창이 현재 보여지지 않는다는 것을 말하는 또 다른 @State 프로퍼티를 만들어 봅시다.
@State private var showingPaymentAlert = false
이제 form에 alert() modifier을 추가할 것이며, 해당 프로퍼티에 양방향 바인딩을 사용할 것입니다.
.alert(isPresented: $showingPaymentAlert) {
// more to come
}
이것은 양방향 바인딩이므로 SwiftUI는 showingPaymentAlert이 true가 될때, 경고창을 보여주는 것을 알고 있고 해당 경고창이 닫힐때 showingPaymentAlert이 false로 설정되는 것을 알고 있습니다.
경고창(alert)은 무엇인가요? 음, 이것은 지불한 가격과 OK 버튼을 확인할 수 있는 경고창입니다. // more to come 주석이 있는곳에 다음을 집어 넣습니다.
Alert(title: Text("Order confirmed"), message: Text("Your total was $\(totalPrice, specifier: "%.2f") – thank you!"), dismissButton: .default(Text("OK")))
이제 원할때마다 경고창을 보여줄수 있으며, showsPaymentalert를 true로 설정하기만 하면 됩니다. 따라서 버튼을 다음과 같이 변경하세요.
Button("Confirm order") {
self.showingPaymentAlert.toggle()
}
프로그램을 실행하고 생각한 것을 확인해보세요 - 이제는 정말 함께 보입니다.
'SwiftUI > Building a complete project' 카테고리의 다른 글
Adding swipe to delete and EditButton (0) | 2019.11.13 |
---|---|
Formatting interpolated strings in SwiftUI (0) | 2019.11.13 |
Two-way bindings in SwiftUI (0) | 2019.11.13 |
Bindings and forms (0) | 2019.11.08 |
Adding TabView and tabItem() (0) | 2019.11.08 |
Adding items to an order with @EnvironmentObject (0) | 2019.11.08 |
Observable objects, environment objects, and @Published (0) | 2019.11.07 |
Displaying a detail screen with NavigationLink (0) | 2019.11.07 |