【问题标题】:DisMiss the Navigation bar image取消导航栏图像
【发布时间】:2012-04-30 09:32:23
【问题描述】:

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

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

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

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

现在我不想在其他屏幕上显示图像,我该怎么办?

【问题讨论】:

  • 第二屏你需要图片消失吗?
  • 是的。我不希望它出现在我的第二个屏幕中

标签: iphone ios xcode uiimageview uinavigationbar


【解决方案1】:

您可以做的一件事是在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];

【讨论】:

  • 我已经用另一个解决方案更新了答案。如果你认为这是正确的答案。请接受。 :)
【解决方案2】:

您已在导航栏中添加了图像,但在移至其他视图之前未将其删除。 使用`

-(void)viewWillDisappear:(BOOL)animated{

    [barImg removeFromSuperview];
}` 

将其从超级视图中删除。

【讨论】:

    猜你喜欢
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    • 2016-10-13
    • 2012-07-29
    相关资源
    最近更新 更多