2012-05-07 6 views
1

こんにちは、私はいくつかの投稿をチェックしましたが、私の問題に関する有用な情報は見つかりませんでした。私は正常にボタンを追加しましたが、時にはバックボタンが上に表示されます。uinavigationbar iphoneでカスタムバックボタンを設定すると、バックボタンが上部に表示されることがあります。

マイコード:

self.navigationItem.leftBarButtonItem = nil; 
self.navigationItem.backBarButtonItem = nil; 
[self.navigationItem setHidesBackButton:YES]; 

UIButton *btn = [UIButton backButton]; 
[btn addTarget:self action:@selector(popView) forControlEvents:UIControlEventTouchUpInside]; 
UIBarButtonItem *barBtn = [[UIBarButtonItem alloc] initWithCustomView:btn]; 
self.navigationItem.leftBarButtonItem = barBtn; 
[barBtn release]; 

結果:

enter image description here

だから多分誰かがいくつかの同様の問題を抱えていたか、私が間違っているのを知っていますか?

ありがとうございます!

+1

いつこのコードを呼び出していますか? 'viewWillAppear'にあるはずです。 – adig

+0

このリンクは私のために働いた:http://idevrecipes.com/2011/01/12/how-do-iphone-apps-instagramreederdailybooth-implement-custom-navigationbar-with-variable-width-back-buttons/、http: //www.applausible.com/blog/?p=401 –

+0

@adig viewdidloadでこれを追加しましたが、私がviewwillが表示されるように移動したときには、どちらも助けになりません。 – Lukas

答えて

0

が最後にそれが何だったか、私を見つけた....あなたが任意の明確化が必要な場合は私に知らせてください。ナビゲーションコントローラーとビューコントローラーの表示に問題がありましたので、修正してからこのバグは消えました。

1

いくつかのコードを変更する必要があります...私はここにいくつかのコードを入れました。

UIButton *leftButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
      [leftButton setUserInteractionEnabled:NO]; 
      [leftButton setImage:[UIImage imageNamed:@"leftbutton.png"] forState:UIControlStateNormal];  
      leftButton.frame = CGRectMake(0, 0, 30, 30); 
      [leftButton addTarget:self action:@selector(youraction:) forControlEvents:UIControlEventTouchUpInside];   
      self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:leftButton]; 

     [leftButton release]; 

ホープ、これは..あなたを助けるかもしれない

+0

を解決しました。私には、私のためのボタンを返す私が使用しているカテゴリがあります: UIButton * btn = [UIButton backButton]; 他のものはすべて同じですが、お手伝いをしてくれてありがとうございますが、残念ながらこれは私の問題を解決しません。 – Lukas

+0

はい。しかし、このカスタマイズを使用すると良いです。あなただけのボタンイメージを持っている必要があり、それは多くの時間をsaveyourになります – Nit

+0

私はこのバックボタンがたくさん使用されているので、私はカテゴリーを作ったので、カテゴリは、私はこのボタンが必要なときに私は多くの時間を節約私はただUIButton * btn = [UIButton backButton];以上です。 – Lukas

1

self.navigationItem.hidesBackButton = YES;

はあなたの問題、それは私のために正常に動作としては、コードの下に使用することができます

+2

これはこれと同じではありませんか? [self.navigationItem setHidesBackButton:YES]; – Lukas

+0

ええと、それは実際には同じであるべきです..それはまだ表示される奇妙! – Manuel

1

こんにちはルーカス....

UINavigationBarの*バーを解決する必要があります。 UIImage * buttonImage = [UIImage imageNamed:@ "bak.png"]; UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom];

[button setImage:buttonImage forState:UIControlStateNormal]; 
    [button addTarget:self action:@selector(popView) forControlEvents:UIControlEventTouchUpInside]; 

    button.frame = CGRectMake(0, 0, buttonImage.size.width, buttonImage.size.height); 

    customBarItem = [[UIBarButtonItem alloc] initWithCustomView:button]; 
    self.navigationItem.leftBarButtonItem=customBarItem; 
    [bar addSubview:button]; 

関連する問題