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

joe*_*oey 4 ios swift

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

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

navigationController?.navigationBar.shadowImage = UIImage()
    navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
Run Code Online (Sandbox Code Playgroud)

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

我在这里看了很多其他问题:如何在iOS 7和这里制作完全透明的导航栏:Swift中的透明UINavigationBar但没有任何作用.

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

在此输入图像描述

Eli*_*kiy 7

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

self.navigationBar.translucent = YES;
self.navigationBar.shadowImage = [UIImage new];
[self.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)

另一个原因可能是你的ViewController没有扩展到你的下方UINavigationBar,这就是为什么你看到黑色部分,尝试在viewDidLoad你的ViewContorller

self.edgesForExtendedLayout = UIRectEdgeTop;
Run Code Online (Sandbox Code Playgroud)