Правильный способ представления ActionSheet с помощью SwiftUI - PullRequest
1 голос
/ 06 июня 2019

Я хочу показать ActionSheet (или любой другой мод, кроме Alert) для какого-то события, например, нажатия кнопки.

Я нашел способ сделать это, используя переменную состояния.Мне кажется немного странным отображать его таким образом, потому что мне приходится сбрасывать переменную, когда ActionSheet закрывается вручную.

Есть ли лучший способ сделать это?

Почему существует отдельный метод представления Alert, который позволяет связать его видимость с переменной состояния?Какая разница с моим подходом?

struct Sketch : View {
    @State var showActionSheet = false

    var body: some View {
        ZStack {
            Button(action: { showActionSheet = true }) { Text("Show") }
        }
        .presentation(showActionSheet ?
            ActionSheet(
                title: Text("Action"),
                buttons: [
                    ActionSheet.Button.cancel() { 
                        self. showActionSheet = false 
                    }
                ]) 
        : nil)
    }
}

1 Ответ

0 голосов
/ 06 июня 2019

Для модальной части вашего вопроса, вы можете использовать PresentationButton:

struct ContentView : View {
    var body: some View {
        PresentationButton(Text("Click to show"), destination: DetailView())
    }
}

Источник

...