2

ナビゲーション バーの戻るボタンの外観を変更したいと考えています。そのために、このコードがあります。

UIImage *backButtonImage = [UIImage imageNamed:@"backbutton.png"];
UIButton *backbutton = [UIButton buttonWithType:UIButtonTypeCustom];
backbutton.backgroundColor = [UIColor colorWithPatternImage:backButtonImage];
backbutton.titleLabel.text = @"back";
backbutton.titleLabel.textColor= [UIColor colorWithRed:50/255.0
                                                 green:158/255.0
                                                  blue:218/255.0
                                                 alpha:1.0];

backbutton.frame = CGRectMake(0, 0, backButtonImage.size.width, backButtonImage.size.height);
UIBarButtonItem * back = [[UIBarButtonItem alloc] initWithCustomView:backbutton];
[backbutton addTarget:self action:@selector(back_Clicked) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.leftBarButtonItem = back;

それでも、標準の戻るボタンが表示されます。助けはありますか?

4

5 に答える 5

1

そのviewControllerをスタックにプッシュする前に、戻るボタンをカスタマイズするコードを配置してください。そして、 leftBarButtonItem ではなく、 BackBarButtonItem を設定します。

UIImage *image = [UIImage imageNamed:@"backbutton.png"];
UIButton *backbutton = [UIButton buttonWithType:UIButtonTypeCustom];
backbutton.bounds = CGRectMake( 0, 0, image.size.width, image.size.height );
[backbutton setImage:image forState:UIControlStateNormal];
backbutton.titleLabel.textColor = [UIColor blueColor];
UIBarButtonItem *back = [[UIBarButtonItem alloc] initWithCustomView:backbutton];
[[self navigationItem] setBackBarButtonItem: back];
[self.navigationController pushViewController:yourViewControllerObject animated:YES];
于 2012-12-13T09:13:58.257 に答える
0
   IButton *favButton = [[UIButton alloc] init];

     [favButton setImage:[UIImage imageNamed:@"unselected.png"]     forState:UIControlStateNormal];
     [favButton addTarget:self action:@selector(favouriteButtonClicked:)
    forControlEvents:UIControlEventTouchUpInside];

 UIBarButtonItem *button = [[UIBarButtonItem alloc]
                            initWithCustomView:favButton];

 self.navigationItem.rightBarButtonItem = button;

  [button release];
  [favButton release];
于 2012-12-13T09:37:16.743 に答える
0

使用する

 self.navigationItem.leftBarButtonItem = back;

それ以外の

 self.navigationController.navigationItem.leftBarButtonItem = back;
于 2012-12-13T09:10:01.543 に答える
0

あなたの要件に以下のコードを使用して..

- (void)viewDidLoad
{
        ///write your code

        UIImage *backButtonImage = [UIImage imageNamed:@"backbutton.png"];
        UIButton *backbutton = [UIButton buttonWithType:UIButtonTypeCustom];
        //[backbutton setImage:backButtonImage forState:UIControlStateNormal];//this line for set only image on button
        [backbutton setBackgroundImage:backButtonImage forState:UIControlStateNormal];
        [backbutton setTitle:@"Back" forState:UIControlStateNormal];
        backbutton.frame = CGRectMake(0, 0, backButtonImage.size.width, backButtonImage.size.height);
        UIBarButtonItem * back = [[UIBarButtonItem alloc] initWithCustomView:backbutton];
        [backbutton addTarget:self action:@selector(back_Clicked) forControlEvents:UIControlEventTouchUpInside];
        self.navigationItem.leftBarButtonItem = back;
}

戻るボタンをクリックすると、以下のメソッドが呼び出され、前のビューコントローラーに移動します

-(void)back_Clicked{
      [self.navigationController popViewControllerAnimated:YES];
}
于 2012-12-13T09:11:05.253 に答える
0
[self.navigationItem setLeftBarButtonItem:[[UIBarButtonItem alloc] initWithCustomView:[self buttonWithImage:@"backButton" heighlightImageName:@"backButton" buttonFrame:CGRectMake(2, 1, 30, 30) selectorName:@selector(buttonBackClicked:) target:self]]];


- (UIButton*)buttonWithImage:(NSString*)normalImageName heighlightImageName:(NSString*)heighlightImageName buttonFrame:(CGRect)buttonFrame selectorName:(SEL)selectorName target:(id)target
{
    UIButton *tempButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [tempButton setFrame:buttonFrame];
    [tempButton addTarget:target action:selectorName forControlEvents:UIControlEventTouchUpInside];
    [tempButton setImage:[self getImageFromResource:normalImageName] forState:UIControlStateNormal];
    [tempButton setImage:[self getImageFromResource:heighlightImageName] forState:UIControlStateHighlighted];
    return tempButton;
}
- (UIImage*)getImageFromResource:(NSString*)imageName
{
    return [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:imageName ofType:@"png"]];
}
于 2012-12-13T09:17:35.240 に答える