1

我正在尝试使用 NavigationView 使用 SwiftUI 制作一个简单的应用程序,最后一个 View 是一个视频播放器(我显然不想有一个导航栏)。问题是通向播放器的每个其他 View 都有 navigationBarTitle 并且它只是保持不变。

我有的:

内容视图:

var body: some View {
    NavigationView {
        VStack {
            Text("Sample")
            DetailedView(data: CustomData.sample)
        }
        .navigationBarTitle(Text("Main"))
    }
}

详细视图:

@ObservedObject var data: CustomData

var body: some View {
    ScrollView(.vertical, showsIndicators: false) {
        VStack {
            ForEach(data.array) { videoData in
                NavigationLink(destination: VideoDetailed(videoData: videoData)) {
                    VideoRow(episode: episode)
                }
            }
        }
    }
}

视频详细:

@ObservedObject var videoData: VideoData

var body: some View {
    VStack {
        NavigationLink(destination: PlayerContainerView(url: videoData.url)
              .navigationBarBackButtonHidden(true)
              .navigationBarTitle(Text("_"))
              .navigationBarHidden(true)){
                Image(systemName: "play.fill")
                    .resizable()
                    .foregroundColor(.white)
                    .aspectRatio(contentMode: .fit)
                    .shadow(radius: 5)
                    .frame(maxWidth: 50)
            }
        Text(videoData.description)
        Spacer()
    }
    .navigationBarTitle(Text(videoData.title), displayMode: .inline)
}

由于这段代码,我没有后退按钮和带有导航栏的标题“_”

4

2 回答 2

2

You need to set the title to an empty string and the displayMode to inline for it to hide.

.navigationBarTitle("", displayMode: .inline)
.navigationBarHidden(false)
于 2020-05-19T02:12:31.693 回答
0

只需删除此行:

.navigationBarTitle(Text("_"))

VideoDetailed.

于 2019-10-03T22:40:40.360 回答