我需要一个完全透明的导航栏为mapView,所以我这样做:
[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault]; [self.navigationController.navigationBar setShadowImage:[UIImage new]];
这将返回所需的效果,如下所示:
现在我有一个问题,当我去任何其他,因为我的navigationBar保持透明:
如何恢复navigationBar的backgroundImage和shadowImage的默认设置?
解决方法
将导航图像设置为nil在viewWillDisappear的地图视图上
在您的地图视图中设置这两种方法
MapView.m
-(void)viewWillAppear:(BOOL)animated{ [self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault]; [self.navigationController.navigationBar setShadowImage:[UIImage new]]; } -(void)viewWillDisappear:(BOOL)animated{ [self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault]; [self.navigationController.navigationBar setShadowImage:nil]; }