在 iOS13 + xcode 11 中隐藏导航栏

Posted

技术标签:

【中文标题】在 iOS13 + xcode 11 中隐藏导航栏【英文标题】:hide navigation bar in iOS13 + xcode 11 【发布时间】:2020-03-31 17:01:57 【问题描述】:

我想为第一个ViewController 隐藏navigationBar,这是我的第一个屏幕。它都嵌入在导航控制器中。我尝试了下面的代码,但没有工作。

override func viewWillAppear(_ animated: Bool) 

        let navigationBar = navigationController?.navigationBar
        if #available(ios 13.0, *) 
            let navigationBarAppearence = UINavigationBarAppearance()

            navigationBarAppearence.shadowColor = .clear
            navigationBar?.scrollEdgeAppearance = navigationBarAppearence
            navigationBar?.standardAppearance = navigationBarAppearence
            navigationBar?.compactAppearance = navigationBarAppearence
            navigationBar?.backgroundColor = .clear
            navigationBar?.isHidden = true
         else 
            navigationBar?.isHidden = true
        
    

我正在使用 xcode11 如何隐藏导航栏?建议总是受到赞赏。

【问题讨论】:

【参考方案1】:

试试这个代码

 self.navigationController?.isNavigationBarHidden = true

【讨论】:

请不要只发布代码作为答案,还要解释您的代码的作用以及它如何解决问题的问题。带有解释的答案通常质量更高,更有可能吸引投票。 谢谢,Vishnu anilKumar,但你能解释一下区别吗? ***.com/questions/47470145/…【参考方案2】:

试试这个

navigationController?.isNavigationBarHidden = true

而不是

let navigationBar = navigationController?.navigationBar
navigationBar?.isHidden = true

【讨论】:

谢谢,Faysal Ahmed,但你能解释一下区别吗? 检查这个:***.com/questions/47470145/…【参考方案3】:

我知道您尝试过编码,但尝试了一些不同的东西。 无需代码,您可以使用 Main.storyboard。

1.按下“导航控制器场景” 2.按“导航控制器” 3.右手边的侧边栏(忘记叫什么了) 4.将鼠标悬停在顶部图标上找到“显示属性检查器” 5.在“Simulated Metric”下找到“Navigation Controller” 6.在“Bar Visbilty”旁边取消单击“显示导航栏” 7.全部完成

我知道这不是代码,但希望这对你有用。

【讨论】:

【参考方案4】:

在 iOS15 + xcode 13 中隐藏导航栏

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool

    if #available(iOS 15, *) 
        let appearance = UINavigationBarAppearance()
        appearance.configureWithOpaqueBackground()
        appearance.titleTextAttributes = [.foregroundColor: UIColor.white]
        appearance.backgroundColor = UIColor(red: 0.0/255.0, green: 125/255.0, blue: 0.0/255.0, alpha: 1.0)
        UINavigationBar.appearance().standardAppearance = appearance
        UINavigationBar.appearance().scrollEdgeAppearance = appearance
    

【讨论】:

在 didFinishLaunchingWithOptions launchOptions 中添加此代码: 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于在 iOS13 + xcode 11 中隐藏导航栏的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 13 上最初隐藏导航控制器中的搜索栏?

向导航栏添加渐变将隐藏 iOS 13.0 + 中的栏按钮项目

iOS 13 - 导航栏标题颜色问题

导航栏仅在 iOS5 中部分隐藏

UIDocumentPicker 导航栏按钮在 iOS 11 中隐藏

iOS13状态栏背景颜色与大文本模式下的导航栏不同