SwiftUI предоставляет декларативный пользовательский интерфейс, а не более императивную парадигму, используемую в UIKit. Таким образом, вместо использования последовательности команд для отдельного изменения состояния и представлений представление SwiftUI определяется как функция его состояния.
Так что в этом случае порядок .onAppear
и .alert
не изменяется представление предупреждения.
struct Demo: View {
@State var isAlertPresented = false
var body: some View {
Text("Hello, World!")
.onAppear() {
self.isAlertPresented = true
}
.alert(isPresented: self.$isAlertPresented) {
Alert(title: Text("Alert!"))
}
}
}
В приведенном выше примере, когда отображается текстовое представление, .isAlertPresented
изменяется на true. Отдельно добавляется предупреждение, которое будет отображаться всякий раз, когда .isAlertPresented
истинно.
Пример ниже приводит к тому же результату, даже изменяя порядок двух ViewModifiers.
struct Demo: View {
@State var isAlertPresented = false
var body: some View {
Text("Hello, World!")
.alert(isPresented: self.$isAlertPresented) {
Alert(title: Text("Alert!"))
}
.onAppear() {
self.isAlertPresented = true
}
}
}