Navigationbartitle 显示一个白框
Posted
技术标签:
【中文标题】Navigationbartitle 显示一个白框【英文标题】:Navigationbartitle showing a white box 【发布时间】:2021-06-21 13:39:47 【问题描述】:我正在开发一个应用程序,但我在使用 navigationTitle 和工具栏按钮时遇到问题,它在我的登录和文档屏幕上的标题上方显示一个白框(见图)我的其他导航标题上我没有,有人知道解决方案吗? 提前谢谢你。
文档屏幕代码:
struct Homescreen : View
var body: some View
List
Text("A List Item")
Text("A Second List Item")
Text("A Third List Item")
.navigationTitle("Documents")
.toolbar
Button(action:
try! Auth.auth().signOut()
UserDefaults.standard.set(false, forKey: "status")
NotificationCenter.default.post(name: NSNotification.Name("status"), object: nil)
)
Image(systemName: "person.badge.minus")
部分登录屏幕代码。
struct ContentView: View
var body: some View
Home()
struct ContentView_Previews: PreviewProvider
static var previews: some View
ContentView()
struct Home : View
@State var show = false
@State var status = UserDefaults.standard.value(forKey: "status") as? Bool ?? false
var body: some View
NavigationView
VStack
if self.status
Homescreen()
else
ZStack
Login(show: self.$show)
.navigationBarTitle("Log in")
.onAppear
NotificationCenter.default.addObserver(forName: NSNotification.Name("status"), object: nil, queue: .main) (_) in
self.status = UserDefaults.standard.value(forKey: "status") as? Bool ?? false
【问题讨论】:
看起来您可能在另一个NavigationView
中嵌入了一个 NavigationView
。只保留第一个。
你现在需要做什么来解决它吗?
从 struct Home 中删除 NavigationView
。你必须有一个NavigationView
像 TabView 一样的早期视图
它适用于登录屏幕,但现在我的文档屏幕上现在有一个导航磁贴登录和文档。
我修好了,非常感谢!
【参考方案1】:
在 SwiftUI 中,导航栏有两种样式.navigationBarTitleDisplayMode(.large)
和.navigationBarTitleDisplayMode(.inline)
。标题上方的白框是.large
风格的正常行为。如果您想要自定义的导航栏比描述的选项更多,您需要创建自己的导航栏。
你的代码在我运行它们时的样子...... Example
【讨论】:
以上是关于Navigationbartitle 显示一个白框的主要内容,如果未能解决你的问题,请参考以下文章