iOS Swift - 当返回到一个隐藏导航栏的屏幕时,导航项背景变黑

11

我认为展示一张截图可以更好地帮助理解问题。

所以情境如下:

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

一旦我点击返回按钮,导航栏立即消失,直到显示主屏幕的动画完成之前,我看到一个黑色矩形出现。

你知道我如何避免出现这个黑色矩形吗?

希望问题讲得清楚。

截图

这是初始设置屏幕:

enter image description here

当我们点击返回按钮时,会出现以下情况...求助:D

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

override func viewWillAppear(_ animated: Bool) {

navigationController?.isNavigationBarHidden = true

enter image description here


1
你尝试过使用带有动画的隐藏导航栏方法 setNavigationBarHidden(_ hidden: Bool, animated: Bool) 吗?请参见文档 - paulvs
很高兴它对Edouard有所帮助 :-) 顺便说一句,当你发现评论回答了问题时,你可以要求评论者将其发布为答案并接受它。只是一个想法,不过这次不用担心。 - paulvs
1
谢谢。哦,对不起,我忘了。请把这个作为答案发布 :) 我会立即删除我的回复。我对Stack还很陌生,还在学习常规做法。再次感谢。 - Edouard Barbier
3个回答

19

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


8

针对Swift3.0

在第一个视图控制器中添加以下代码:

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

在第二个视图控制器中添加以下代码:

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

3

将以下代码添加到第二个视图控制器中

颜色可以对应您自定义的颜色

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


        }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接