繁体   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