I'm trying to write a simple application using SwiftUI to understand better how it's working.
In my application logic I need to display a alert with localized description of fault in case if one happened. Quite simple thing. I wrote the following code:
struct LoginView: View {
@State fileprivate var isDisplayAlertFirebaseError = false
@State fileprivate var firebaseErrorLocalizedMessage = ""
// ...
Text("We will send you SMS with validation code to confirm your phone number")
.font(.system(size: Appearance.labelFontSize))
.multilineTextAlignment(.center)
.padding(.horizontal, 55)
.offset(x: 0, y: 15)
.alert(isPresented: $isDisplayAlertFirebaseError) {
Alert(title: Text("Error"), message: Text($firebaseErrorLocalizedMessage), dismissButton: .default(Text("OK")))
}
}
However it doesn't compile with message "Initializer 'init(_:)' requires that 'Binding' conform to 'StringProtocol'"
Can you please suggest how can I do that?
Also I'm trying to understand the architecture of SwiftUI, and I found a bit strange, that I need to declare all alerts and assign them to some UI controls (could be a lot alerts in fact in some screens - will be necessary to create empty views for this), is there are really no way to display it just from code? What is the reason of that?
Thank you very much
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…