我在我的代码中从导航栏按钮显示一个模式表:

struct MainPage : View {

    @State var isModalSheetShown: Bool = false

    var body: some View {
        VStack {
            [...]
        }
        .navigationBarItems(trailing: HStack {
            Button(action: { self.isModalSheetShown = true }) {
                Text("Add")
            }
        })
        .sheet(isPresented: $isModalSheetShown, content: {
            VStack {
                [...]
            }
            .navigationBarItems(trailing: HStack {
                Button(action: { ... }) {
                    Text("Done")
                })
            })
        })
    }
}

但是导航栏没有出现在模态表中,如下所示。

ios - SwiftUI 中的模态表可以有导航栏吗?-LMLPHP

我做错了什么,你如何在模态表上放置导航栏?

最佳答案

您必须像这样将模态视图包装在 NaviagtionView

@State var isModalSheetShown: Bool = false

var body: some View {
    VStack {
        Text("Main")
    }
    .navigationBarItems(trailing: Button("Add",
                                         action: { self.isModalSheetShown = true }))
    .sheet(isPresented: $isModalSheetShown) {
        NavigationView {
            VStack {
                Text("Modal")
            }
            .navigationBarItems(trailing: Button("Done",
                                                 action: {}))
        }
    }
}

关于ios - SwiftUI 中的模态表可以有导航栏吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59702997/

10-17 01:10