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 显示一个白框的主要内容,如果未能解决你的问题,请参考以下文章

单击下拉菜单显示一个白框

点击或鼠标上移会在输入框上方显示白框

如何在下一个视图中途翻转时消除白框?

如何使 Tailwind flex 列全屏显示,但不再显示

el-table-column出现白框

Xcode启动框的显示