我在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但没有任何效果。
我做错了什么?上面的两行代码是我唯一使用的代码,但我也尝试过上面链接中的建议,但没有任何作用。这是黑色导航栏的照片:答案 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