我在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但没有任何作用.
我究竟做错了什么?上面的两行代码是我正在使用的唯一代码,但我也尝试过上面链接中的建议,但没有任何作用.这是黑色导航栏的照片:
当我遇到同样的问题时,对我来说有用的是对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)
| 归档时间: |
|
| 查看次数: |
2009 次 |
| 最近记录: |