Как представить предупреждение по коду или в пользовательском классе в swiftui - PullRequest
1 голос
/ 04 февраля 2020

Я обыскал весь документ о том, как представлять оповещение в swiftui, но все они показывают код, подобный следующему:

Button(action: {
            self.showingAlert = true
}) {
            Text("Show Alert")
}
.alert(isPresented:$showingAlert) {
    Alert(title: Text("title"))
}

Что означает, что оповещение должно использоваться для кнопки.

Как Могу ли я использовать оповещение в своем пользовательском классе, например, обрабатывать запрос http, а затем показывать предупреждение об ошибке, например:

class A{
    func getDate(){
        alert("error")
    }
}

1 Ответ

3 голосов
/ 04 февраля 2020

Создать класс и соответствовать протоколу ObservableObject (Все, что соответствует ObservableObject, может использоваться внутри SwiftUI, и публикует sh объявления, когда его значения изменились, чтобы пользовательский интерфейс мог обновляться):

class A: ObservableObject {

    @Published var showAlert = false

    func buttonTapped() {
        //handle request and then set to true to show the alert
        self.showAlert = true
    }

}

Ваш взгляд:

struct ContentView: View {

    @ObservedObject private var viewModel = A()

    var body: some View {

        Button(action: {
            self.viewModel.buttonTapped()
        }) {
            Text("Show Alert")
        }
        .alert(isPresented: $viewModel.showAlert, content: { () -> Alert in
            Alert(title: Text("Error"), message: Text("Please try again"), dismissButton: .default(Text("Okay")))
        })
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...