有人可以解释为什么在图像(蓝色矩形)和导航栏标题(文本一个)之间有两个UI元素(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)
}
答案 0 :(得分:2)
这可能是因为额外的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"))
}
}
}
我得到这样的结果:
但是,如果我从NavigationView
中删除了DestinationView
,我得到的结果可能就是您期望的: