DisMiss导航栏图像

时间:2012-04-30 09:32:23

标签: iphone ios xcode uiimageview uinavigationbar

我想解雇导航条图像(不是背景图像)。这就是我在左侧设置了导航栏图像。当我转到下一个控制器时,图像与后退按钮重叠。这是我的主屏幕,图像为蓝色标记。 Home Screen

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

enter image description here

这是我用来在栏中设置图像的代码

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];

现在我不希望我的其他屏幕中的图像能为我做些什么呢?

2 个答案:

答案 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中删除。