为什么UINavigationBar变黑?

问题:

我有一个嵌入UINavigationControllerUITableViewController 。 按表格视图中的单元格切换到另一个表格视图控制器。 在所述表格视图控制器中,我希望导航栏不可见,同时仍然保留标签栏项目,所以我将以下内容添加到其viewDidLoad()

self.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
        self.navigationController?.navigationBar.shadowImage = UIImage()
        self.navigationController?.navigationBar.translucent = true
        self.navigationController?.navigationBar.tintColor = .blackColor() 

对于第一个UITableViewController,我想导航栏是正常的,所以在其viewDidAppear()我做了以下几点:

self.navigationController?.navigationBar.translucent = false

除了在转换过程中(我通过performSegueWithIdentifier ),一切都工作正常,第一个视图控制器上的导航栏消失在看起来难看的黑色中。 有什么办法来防止/解决这个问题吗?

截图: 在这里输入图像描述


我最近有一个非常类似的问题。 在两个视图控制器和self.edgesForExtendedLayout = UIRectEdgeNone尝试设置self.navigationController?.navigationBar.translucent = true
故事板版本:扩展边缘 - 在顶部酒吧


您可以为导航栏的半透明设置动画。 因此,在第二个UITableViewControllerviewDidLoad中,可以编写以下代码:

override func viewDidLoad() {
    self.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
    self.navigationController?.navigationBar.shadowImage = UIImage()
    self.navigationController?.navigationBar.tintColor = .blackColor()

    // Play around with the duration until you find
    // a time interval, you find suitable
    UIView.animateWithDuration(2) {
        self.navigationController?.navigationBar.translucent = true
    }
}

我最近又遇到过这种情况,并发现了一种在故事板中修复它的方法。 如果您使用的是不透明导航栏,请确保设置“不透明酒吧”下的“延伸边缘”设置。 事实上,我只是将其中的三个设置为如下所示: -

在这里输入图像描述

链接地址: http://www.djcxy.com/p/85685.html

上一篇: Why is the UINavigationBar turning black?

下一篇: Spark and HBase Snapshots