2

UINavigationBar の戻るボタンを変更するこのコードがあります

// Set the custom back button
UIImage *buttonImage = [UIImage imageNamed:@"backag.png"];

//create the button and assign the image
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:buttonImage forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:@"selback.png"] forState:UIControlStateHighlighted]; 
button.adjustsImageWhenDisabled = NO;


//set the frame of the button to the size of the image (see note below)
button.frame = CGRectMake(0, 0, 30, 30);

[button addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];

//create a UIBarButtonItem with the button as a custom view
UIBarButtonItem *customBarItem = [[UIBarButtonItem alloc] initWithCustomView:button];
self.navigationItem.leftBarButtonItem = customBarItem;

// Cleanup
[customBarItem release];

viewDidLoad メソッドに入れると、正常に動作します。ただし、次のビューを読み込むと、古いスタイルのボタンが表示されます。これを修正するために、このコードを次のビューの viewDidLoad メソッドに入れてみましたが、ボタンが表示されません。

これを引き起こしている可能性のあるものについてのアイデアはありますか?

ありがとう!

4

3 に答える 3

2

同じコードを適用

-(void)viewDidAppear:(BOOL)animated
{

}
于 2012-04-20T07:02:22.890 に答える
1

私は両方のビューでtisコードを使用しましたが、うまくいきました...

// 両方のビューの viewDidLoad メソッドに次のコードを追加します...

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

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

うまくいけば、これはあなたを助けるでしょう...楽しんでください..

于 2012-04-20T07:13:16.733 に答える
0

NavigationItemでhidesBackButtonプロパティを設定していることを確認する必要があります。

// Setup custom back button
self.navigationItem.hidesBackButton = YES;
于 2012-04-20T08:25:28.523 に答える