{
[super viewWillAppear:animated];
//给navigationBar添加一个透明的背景图片
//设置navigationBar的barstyle为黑色半透明;
self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
//此时背景已经变成透明的了,但是在navigationbar的边缘有一条轮廓线,这条轮廓线实际上是苹果封装在navigationbar 里面的一个imageView,因此找到这个imageView并且把它移出或者隐藏,就可以实现真正的透明;
if ([view isKindOfClass:[UIImageView class]]) {
view.hidden = YES;
}
}
}
//需要注意的是,若果将需要通过self.navigationController来push到另外一个界面的时候,这个时候我们需要在本页面将要消失的时候 将这个被隐藏的imageView显现,否则将会在跳转的时候崩溃;
添加如下-(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
for (UIView * view in self.navigationController.navigationBar.subviews) {
if ([view isKindOfClass:[UIImageView class]]) {
view.hidden = NO;
}
}
[self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
}