SwiftUI View Controls - PullRequest
       0

SwiftUI View Controls

0 голосов
/ 20 февраля 2020

Я пытаюсь использовать .alert и .onAppear для одного из моих представлений, и я хочу, чтобы сначала вызывался .onAppear, потому что .alert зависит от переменной в .onAppear. Любым способом заказать пользовательский интерфейс?

1 Ответ

0 голосов
/ 20 февраля 2020

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
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...