Дополнительные элементы для представления назначения SwiftUI - PullRequest
1 голос
/ 19 апреля 2020

Может кто-нибудь объяснить, почему существует 2 элемента пользовательского интерфейса (UINavigationBarContentView, UINavigationBarLargeTitleView) между изображением (синий прямоугольник) и заголовком панели навигации (текст Один )?

Код, который я использую это:

let item: ImageNameModel
@State private var image: Image?

var body: some View {
    NavigationView {
        VStack {
            if image != nil {
                image?.resizable().scaledToFit()
            } else {
                Text("Image not loaded")
            }
        }
        .padding([.horizontal, .bottom])
    }
    .navigationBarTitle(Text(item.name))
    .onAppear(perform: loadImage)
}

enter image description here

1 Ответ

2 голосов
/ 19 апреля 2020

Это, вероятно, из-за дополнительного NavigationView.

Вам не нужно иметь NavigationView, оборачивающий пункт назначения.

Например, с этим примером кода здесь:

struct RootView: View {
    var body: some View {
        NavigationView {
            NavigationLink(destination: DestinationView()) {
                Text("Click here")
            }.navigationBarTitle(Text("Title"))
        }
    }
}

struct DestinationView: View {
    var body: some View {
        NavigationView {
            Text("Destination")
                .navigationBarTitle(Text("Destination"))
        }
    }
}

Я получаю такой результат:

Screenshot of

Но если я уберу NavigationView из DestinationView, я получу результат, который, вероятно, то, что вы ожидаете:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...