我想取消我的导航栏图像(不是背景图像),.That是我在左边设置了导航栏图像。当我转到下一个控制器时,图像与后退按钮重叠。这是我的主屏幕上有蓝色标记的图像。

这是我的第二个屏幕,图像重叠

这是我用来在条形图中设置图像的代码
UINavigationBar *bar = [self.navigationController navigationBar];
UIImageView *barImg=[[UIImageView alloc]initWithFrame:CGRectMake(2, 3, 49, 39)];
barImg.image=[UIImage imageNamed:@"smalllogo.png"];
[bar addSubview:barImg];
[barImg release];现在,我不想在我的其他屏幕上的图像,我能做什么呢?
发布于 2012-04-30 09:52:06
您可以做的一件事是将图像添加到viewWillAppear:方法的一侧,并在viewWillDisappear:方法时从导航栏中删除它。相关代码块如下所示。
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
UINavigationBar *bar = [self.navigationController navigationBar];
UIImageView *barImg=[[UIImageView alloc]initWithFrame:CGRectMake(2, 3, 49, 39)];
barImg.image=[UIImage imageNamed:@"smalllogo.png"];
barImg.tag = 100;
[bar addSubview:barImg];
[barImg release];
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
UINavigationBar *bar = [self.navigationController navigationBar];
[[bar viewWithTag:100] removeFromSuperview];
}或者这里有另一个简单的解决方案。将下面的代码段添加到viewWillAppear:方法
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"smalllogo.png"]]];
[self.navigationItem setLeftBarButtonItem:item];
[item release];发布于 2012-04-30 10:12:45
您已经在导航栏中添加了图像,但在进入其他视图之前没有删除它。使用`
-(void)viewWillDisappear:(BOOL)animated{
[barImg removeFromSuperview];
}` 将其从superview中删除。
https://stackoverflow.com/questions/10381379
复制相似问题