【问题标题】:ios swift - navigation item background turns black when going back to a screen where the navigation bar is hiddenios swift - 返回到隐藏导航栏的屏幕时,导航项背景变黑
【发布时间】:2016-10-20 23:00:44
【问题描述】:

我认为显示屏幕截图有助于更好地理解问题。

所以上下文如下:

我在导航控制器中,在应用程序的设置屏幕上(有一个导航项),当我们点击后退按钮时,我们回到应用程序的主屏幕(我已经在主屏幕的 viewWillAppear 中隐藏了导航栏,因为我正在自己构建一个自定义标题视图)。

当我点击后退按钮时,导航栏立即消失,我看到一个黑色矩形出现,直到显示主屏幕的动画完成。

你知道我怎样才能避免出现这个黑色矩形吗?

希望这些问题有意义。

截图

这是初始设置屏幕:

当我们在后退按钮上贴上胶带时,会发生这种情况...帮助:D

我知道这段代码很可能是导致错误的原因,但我绝对需要将导航栏隐藏在前一个屏幕上。

覆盖 func viewWillAppear(_ animated: Bool) {

navigationController?.isNavigationBarHidden = true

}

【问题讨论】:

  • 你试过隐藏导航栏setNavigationBarHidden(_ hidden: Bool, animated: Bool)的动画方法吗?见docs
  • 我很高兴它帮助了 Edouard :-) 附带说明,当您发现评论回答了问题时,您可以要求评论者将其发布为答案并接受。只是一个想法,不过这次不要担心。
  • 谢谢。哦,对了,对不起。请将此作为答案发布:) 我马上删除我的。一般来说,我是 Stack 的新手,仍在学习常见的做法。再次感谢。

标签: ios swift uinavigationcontroller uinavigationbar uinavigationitem


【解决方案1】:

你试过隐藏导航栏setNavigationBarHidden(_ hidden: Bool, animated: Bool)的动画方法吗?

【讨论】:

    【解决方案2】:

    对于 Swift3.0

    在第一个 ViewController 中添加以下代码

    override func viewWillAppear(_ animated: Bool) {
         super.viewWillAppear(true)
         navigationController?.setNavigationBarHidden(true, animated: animated)
    }
    

    在第二个 ViewController 中添加以下代码

    func backButtonPressed() {
        navigationController?.setNavigationBarHidden(false, animated: false)
        navigationController?.popViewController(animated: true)
    }
    

    【讨论】:

      【解决方案3】:

      在第二个 ViewController 中添加以下代码

      颜色可以对应你的自定义

       override func viewWillAppear(_ animated: Bool) {
                    self.navigationController?.view.backgroundColor = UIColor.white
      
      
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-03-28
        • 1970-01-01
        • 1970-01-01
        • 2020-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多