Как скрыть навигационную панель в SwiftUI, когда родительские представления имеют заголовки - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь сделать простое приложение, используя SwiftUI, используя NavigationView, а последний вид - это видеоплеер (который, очевидно, не хочу иметь панель навигации). Дело в том, что в каждом другом представлении, ведущем к плееру, есть navigationBarTitle, и он просто остается.

Что у меня есть:

ContentView:

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)
                }
            }
        }
    }
}

VideoDetailed:

@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)
}

В результате этого кода я не получаю кнопку возврата и "_" для заголовка с панелью навигации

1 Ответ

0 голосов
/ 04 октября 2019

Просто удалите эту строку:

.navigationBarTitle(Text("_"))

из VideoDetailed.

...