web-dev-qa-db-ja.com

SWIFTUI - ナビゲーションバーボタンをクリックするとシートが表示されています

私はちょうど何週間前にSwiffiの使い始めました、そして私は学んでいます。今日は問題に遭遇した。

私がNavigationBarItemsボタンでシートを提示してからModalViewを閉じてContentViewに戻ると、もう一度NavigationBarItemsボタンをクリックできません。

私のコードは次のとおりです。

struct ContentView: View {

    @State var showSheet = false

    var body: some View {
        NavigationView {
            VStack {
                Text("Test")
            }.sheet(isPresented: self.$showSheet) {
                ModalView()
            }.navigationBarItems(trailing:
                Button(action: {
                    self.showSheet = true
                }) {
                    Text("SecondView")
                }
            )
        }
    }
}

struct ModalView: View {

    @Environment(\.presentationMode) var presentation

    var body: some View {
        VStack {
            Button(action: {
                self.presentation.wrappedValue.dismiss()
            }) {
                Text("Dismiss")
            }
        }
    }
}
 _
22
Markus Moltke

とてもハッキーだがこれは私のために働いた:

私は同じ問題を抱えていました。この解決策は私のために働いた。

struct ContentView: View {

    @State var showSheet = false

    var body: some View {
        NavigationView {
            VStack {
                Text("Test")
            }.sheet(isPresented: self.$showSheet) {
                ModalView()
            }.navigationBarItems(trailing:
                Button(action: {
                    self.showSheet = true
                }) {
                    Text("SecondView")
                        // this is a workaround
                        .frame(height: 96, alignment: .trailing)
                }
            )
        }
    }
}
 _
0
glassonion1

とてもハッキーだがこれは私のために働いた:

Button(action: {
    self.showSheet = true
}) {
    Text("SecondView")
    .frame(height: 96, alignment: .trailing)
}
 _
0
adamwjohnson5