[英]SwiftUI - Navigation bar title not displayed when nesting TabView in NavigationView
[英]SwiftUI NavigationView + tabView shows navigation title slightly off the screen
我在 TabView 中有三个视图,每个视图都有一个 naviagtionTitle。 然而,当第一个视图出现时,navigationTitle 几乎离开了屏幕。 只有当我单击另一个页面然后返回到原始页面时,navigationTitle 才会出现在正确的位置。 可能是什么问题呢?
struct OnboardingView : View {
@Binding var shouldShowOnboarding: Bool
var body : some View {
TabView {
PageView(imageName: "Onboarding",
title: "Zone Out of This World",
showsDismissButton: false,
shouldShowOnboarding : $shouldShowOnboarding)
PageView(imageName: "Onboarding",
title: "Improve Your Focus",
showsDismissButton: false,
shouldShowOnboarding : $shouldShowOnboarding)
PageView(imageName: "Onboarding",
title: "Meditate to Relax",
showsDismissButton: true,
shouldShowOnboarding : $shouldShowOnboarding)
}
.tabViewStyle(PageTabViewStyle())
.edgesIgnoringSafeArea(.all)
}
}
struct PageView : View {
let imageName: String
let title: String
let showsDismissButton : Bool
@Binding var shouldShowOnboarding: Bool
var body: some View {
NavigationView {
ZStack {
Image(imageName)
.ignoresSafeArea()
if showsDismissButton {
Button(action: {
shouldShowOnboarding.toggle()
}, label: {
Text("Get Started")
.frame(width: 352, height: 57)
.background(Color(#colorLiteral(red: 0.8470588326454163, green: 0.37254902720451355, blue: 0.27450981736183167, alpha: 1)))
.foregroundColor(Color.white)
.cornerRadius(30)
.padding(.top, 600)
})
}
}
.navigationTitle(title)
}
.navigationViewStyle(.stack)
}
}
我已经包括了截图。
.edgesIgnoringSafeArea(.all)
似乎导致了初始转变。 我不确定为什么它会在您转移视图后自行纠正,但根据当前代码,我不明白您为什么想要拥有.edgesIgnoringSafeArea
所以我认为只需将其注释掉以便拥有第二种预期风格。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.