2011-07-07 1 views
0

以下は私のコードですバックボタンの画像を完全に別の画像に置き換えるにはどうすればいいですか?

// Navigation logic may go here -- for example, create and push another view controller. 
NextViewController *nextViewController = 
[[NextViewController alloc] initWithNibName:@"NextViewController" bundle:nil]; 
[self.navigationController pushViewController:nextViewController animated:YES]; 
[nextViewController release]; 

UIImage *backImage=[UIImage imageNamed:@"backbutton.png"]; 
UIBarButtonItem * backBarButtonItem = [[UIBarButtonItem alloc] 
             initWithImage:backImage style:UIBarButtonItemStylePlain target:nil 
             action:nil]; 
self.navigationItem.backBarButtonItem = backBarButtonItem; 
[backBarButtonItem release]; 

} 

答えて

1

ここでは、私自身のプロジェクトからです。

UIImage *image = [UIImage imageNamed:@"btn-custom-back.png"]; 
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [button setBackgroundImage:image forState:UIControlStateNormal]; 
    button.frame = CGRectMake(0.0, 0.0, image.size.width, image.size.height); 
    [button addTarget:self action:@selector(popView) forControlEvents:UIControlEventTouchUpInside]; 

    UIView *buttonView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, image.size.width, image.size.height)]; 
    [buttonView addSubview:button]; 

    UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithCustomView:buttonView]; 
    [buttonView release]; 

    self.navigationItem.leftBarButtonItem = backItem; 
    [backItem release]; 

と方法(私がのviewDidLoadでこれをやっている):

- (void)popView { 
    [self.navigationController popViewControllerAnimated:YES]; 
} 
+0

感謝を。私はあなたのコードを使用して、戻るボタンは完全に置き換えられますが、正しく機能しません。つまり、これをクリックすると、アプリケーションがフリーズします。 – David

+0

@David:コードを投稿しようとしていますか? – LuckyLuke

+0

私はサブクラスでコメントの下でそれをやろうとしています。// viewDidLoadを実装すると、典型的にはペン先からビューをロードした後に追加の設定を行います。 - (void)viewDidLoad { [super viewDidLoad]; \t self.title = @ "検索"; } – David

1

戻るボタンに変更することで、ナビゲーションスタックに新しいビューコントローラをプッシュする前に行う必要があります。

だから、このように見て周り、あなたのコードを移動:助けを

UIImage *backImage=[UIImage imageNamed:@"backbutton.png"]; 
UIBarButtonItem * backBarButtonItem = [[UIBarButtonItem alloc] 
            initWithImage:backImage style:UIBarButtonItemStylePlain target:nil 
            action:nil]; 
self.navigationItem.backBarButtonItem = backBarButtonItem; 
[backBarButtonItem release]; 

NextViewController *nextViewController = 
[[NextViewController alloc] initWithNibName:@"NextViewController" bundle:nil]; 
[self.navigationController pushViewController:nextViewController animated:YES]; 
[nextViewController release];