我想解雇导航条图像(不是背景图像)。这就是我在左侧设置了导航栏图像。当我转到下一个控制器时,图像与后退按钮重叠。这是我的主屏幕,图像为蓝色标记。
这是我的第二个屏幕,图像重叠
这是我用来在栏中设置图像的代码
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];
现在我不希望我的其他屏幕中的图像能为我做些什么呢?
答案 0 :(得分:0)
您可以做的一件事是在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];
答案 1 :(得分:0)
您已将图像添加到导航栏中,但在移动到其他视图之前未将其删除。 使用`
-(void)viewWillDisappear:(BOOL)animated{
[barImg removeFromSuperview];
}`
将其从superview中删除。