0

ナビゲーションバーの画像(背景画像ではありません)を閉じたいです。つまり、左側にナビゲーションバーの画像を設定しました。次のコントローラーに移動すると、画像が戻るボタンに重なります。これは私のホーム画面で、青でマークされた画像があります。ホーム画面

そして、これが私の2番目の画面 画像が重なった

ここに画像の説明を入力

そして、これはバーに画像を設定するために使用したコードです

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

他の画面に画像を表示したくないのですが、どうすればよいですか?

4

2 に答える 2

0

できることの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];
于 2012-04-30T09:52:06.093 に答える
0

ナビゲーション バーに画像を追加しましたが、他のビューに移動する前に削除していません。` を使用

-(void)viewWillDisappear:(BOOL)animated{

    [barImg removeFromSuperview];
}` 

スーパービューから削除します。

于 2012-04-30T10:12:45.723 に答える