[英]SwiftUI transition from modal sheet to regular view with Navigation Link
[英]Can a Modal Sheet have a Navigation Bar in SwiftUI?
我在我的代碼中從導航欄按鈕顯示一個模式表:
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")
})
})
})
}
}
但是導航欄沒有出現在模態表中,如下所示。
我做錯了什么,你如何在模態表上放置導航欄?
您必須像這樣將模態視圖包裝在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: {}))
}
}
}
模態視圖必須包含在NavigationView
但上述使用.navigationBarItems(trailing: Button("Done", action: {}))
解決方案對我不起作用。 對我有用的是,在模態視圖中,我必須添加一個 navigationButton 並顯示導航欄,我必須使用.navigationBarTitle("", displayMode: .inline)
。 所以這是我的 ModalView 代碼的一部分:
var body: some View {
VStack (alignment: .leading, spacing: 10) {
header
infoBody
Spacer()
}
.padding()
.navigationBarItems(leading: btnBack)
.navigationBarTitle("", displayMode: .inline)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.