[英]SwiftUI - NavigationLink not showing 'Back' or title of the view besides arrow on next view
SwiftUI 和 WatchOS 的新手。 我將 NavigationLink 包裹在列表中的行周圍。 當我單擊列表中的行時,它確實導航到新視圖,但我只看到新視圖左上角的“<”后退箭頭。 我沒有看到“返回”這個詞,甚至沒有看到它的視圖標題。 下面是我的代碼。 我的理解是默認顯示“返回”字樣。 我錯過了什么嗎?
內容視圖:
struct ContentView: View {
@StateObject var userSettingsStore = UserSettingsStore()
var body: some View {
MainMenuListView()
}
}
主菜單列表視圖:
struct MainMenuListView: View {
@EnvironmentObject var userSettingsStore: UserSettingsStore
var body: some View {
VStack {
let menuItems = MenuOptions().menu
List(menuItems) { item in
NavigationLink(destination: MenuDestination(rawValue: item.id)?.view) {
MenuListRowView(imageName: item.imageName, menuItemName: item.name)
}.navigationViewStyle(StackNavigationViewStyle())
}
}.navigationTitle("Sample Application")
}
}
Menu Destination 返回每行應該導航到的視圖。 假設我單擊第 2 行並導航到 CustomView。
自定義視圖:
struct CustomView: View {
@StateObject var viewModel: CustomViewModel
var body: some View {
VStack {
HStack {
Text("Books List")
Spacer()
Button(action: {}) {
Image(systemName: "calendar.circle").foregroundColor(Color(red: 32 / 255, green: 148 / 255, blue: 249 / 255))
}.buttonStyle(PlainButtonStyle())
}
List(CustomMockData().booksList) { item in
CustomRowView(bookItem: item)
}
}.onAppear() {
self.viewModel.getBooksList()
}
}
}
下面是新視圖的外觀,即只有“<”,除此之外沒有任何文本。 如何顯示文本?
編輯:為應用文件添加代碼。
@main
struct myCustomApp: App {
@WKExtensionDelegateAdaptor(ExtensionDelegate.self) var delegate
@SceneBuilder var body: some Scene {
WindowGroup {
NavigationView {
ContentView().environmentObject(UserSettingsStore())
}
}
WKNotificationScene(controller: NotificationController.self, category: "myCategory")
}
}
通過在我的下一個視圖(即自定義視圖)中添加 .navigationBarTitle("Main Menu"),我能夠顯示除 '<' 后退箭頭之外的標題。
代碼:
struct CustomView: View {
@StateObject var viewModel: CustomViewModel
var body: some View {
VStack {
HStack {
Text("Books List")
Spacer()
Button(action: {}) {
Image(systemName: "calendar.circle").foregroundColor(Color(red: 32 / 255, green: 148 / 255, blue: 249 / 255))
}.buttonStyle(PlainButtonStyle())
}
List(CustomMockData().booksList) { item in
CustomRowView(bookItem: item)
}
}.navigationBarTitle("Main Menu").onAppear() {
self.viewModel.getBooksList()
}
}
}
嘗試將 MainMenuListView 包裝在實際的導航視圖中:
struct ContentView: View {
@StateObject var userSettingsStore = UserSettingsStore()
var body: some View {
NavigationView{
MainMenuListView()
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.