bud*_*ino 22 objective-c uinavigationbar uinavigationcontroller ios
我需要一个完全透明的mapView导航栏,所以我这样做:
[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setShadowImage:[UIImage new]];
Run Code Online (Sandbox Code Playgroud)
这会返回所需的效果,如下所示:

现在,当我去其他任何地方时我遇到了问题,因为我的navigationBar仍然是透明的:

如何恢复navigationBar的backgroundImage和shadowImage的默认设置?
Tos*_*lji 52
在地图视图上为导航控制器的图像设置nilviewWillDisappear
在mapview中设置这两个方法
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];
}
Run Code Online (Sandbox Code Playgroud)
对于Swift 3:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
self.navigationController?.navigationBar.shadowImage = UIImage()
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
self.navigationController?.navigationBar.setBackgroundImage(nil, for: UIBarMetrics.default)
self.navigationController?.navigationBar.shadowImage = nil
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9704 次 |
| 最近记录: |