试图使导航栏清晰,并且它是黑色的

时间:2016-03-08 05:38:56

标签: ios swift

我在UINavigationController中。 UINavigationController有3个视图控制器。前两个是tableViewControllers,最后一个是常规视图控制器,嵌入了PageViewController。

我在堆栈的第三个视图控制器中使用以下代码来清除UINavigationBar:

navigationController?.navigationBar.shadowImage = UIImage()
    navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)

我将此代码放在堆栈中的第三个视图控制器中。这是嵌入了UIPageViewController的视图控制器。但导航栏是黑色的。但是,当我从堆栈中弹出第三个控制器并返回第二个控制器时,UITableViewController,导航栏就清晰了。

我在这里查看了许多其他问题:How to make completely transparent navigation bar in iOS 7和此处:Transparent UINavigationBar in Swift但没有任何效果。

我做错了什么?上面的两行代码是我唯一使用的代码,但我也尝试过上面链接中的建议,但没有任何作用。这是黑色导航栏的照片:

enter image description here

1 个答案:

答案 0 :(得分:7)

当我遇到同样的问题时,对我来说有用的是对NavigationController进行子类化,并在viewDidLoad方法中使用它:

self.navigationBar.translucent = YES;
self.navigationBar.shadowImage = [UIImage new];
[self.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];

另一个原因可能是您的ViewController没有在UINavigationBar下扩展,这就是为什么您会看到黑色部分,请尝试在viewDidLoad的{​​{1}}中进行设置

ViewContorller