0

以下のコードは、私のアプリケーションで正常に動作しています。しかし、その leftbarbutton アイテムは見えません。また、背景画像を に設定できませんleftBarButtonItem。何か間違ったことをしたのですが、何が間違っているのかわかりませんか?背景画像を表示して設定することはできますか?

UIImageView *NavigationBarImage =[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 44)];
NavigationBarImage.image=[UIImage imageNamed:@"mapbutton.png"];
[self.navigationController.navigationBar addSubview:NavigationBarImage];
self.navigationItem.hidesBackButton = YES;

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonItemStyleBordered target:self action:@selector(goBack)];
self.navigationItem.leftBarButtonItem = backButton;

-(void)goBack
{
    [self.navigationController popViewControllerAnimated:YES];
}
4

2 に答える 2

4

ナビゲーション項目に backgroundImage を追加したい場合は、次のようなカスタム ボタンを追加する必要があります。

UIButton *tempButton                            =       [UIButton buttonWithType:UIButtonTypeCustom];
tempButton.frame                                =       CGRectMake(0, 0, 50, 30);
tempButton.showsTouchWhenHighlighted            =       YES;
tempButton.backgroundColor                      =       [UIColor clearColor];
[tempButton setBackgroundImage:[UIImage imageNamed:@"back.png"] forState:UIControlStateNormal];
[tempButton setTitle:@"Back" forState:UIControlStateNormal];
[tempButton addTarget:self action:@selector(goBack) forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *backBtn                        =         [[UIBarButtonItem alloc]initWithCustomView:tempButton];

self.navigationItem.leftBarButtonItem           =       backBtn;

背景画像をナビゲーションバーに追加するには、次のコードを使用できます

 [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"header.png"] forBarMetrics:UIBarMetricsDefault];
于 2012-12-08T08:27:27.237 に答える
0
UIButton *home = [UIButton buttonWithType:UIButtonTypeCustom];  
UIImage *homeImage = [UIImage imageNamed:@"YOUR_IMAGE.png"];  
[home setBackgroundImage:homeImage forState:UIControlStateNormal];  
[home addTarget:self action:@selector(your_Action)  
forControlEvents:UIControlEventTouchUpInside];  
home.frame = CGRectMake(0, 0, 69, 26);  
UIBarButtonItem *button2 = [[UIBarButtonItem alloc] initWithCustomView:home];
[[self navigationItem] setLeftBarButtonItem:button2];
[button2 release];
button2 = nil;
于 2012-12-08T10:24:09.240 に答える