【发布时间】: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 一样的早期视图 -
它适用于登录屏幕,但现在我的文档屏幕上现在有一个导航磁贴登录和文档。
-
我修好了,非常感谢!
标签: swift xcode swiftui uinavigationbar