簡體   English   中英

SwiftUI - NavigationLink 不顯示“返回”或視圖的標題,除了下一個視圖上的箭頭

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM