2012-12-13 44 views
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; 

但我仍然得到標準的後退按鈕。任何幫助?

回答

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; 
} 

時後退按鈕點擊波紋管的方法調用,您會去以前的ViewController

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

嗨,這幾乎工作!但我也想在上面顯示文字。所以我改變了我的代碼,就像你看到的那樣。但文字不顯示。任何幫助? – Steaphann

+0

@StefGeelen然後使用這兩行[backbutton setBackgroundImage:backButtonImage forState:UIControlStateNormal]; [backbutton setTitle:@「BAck」forState:UIControlStateNormal];並刪除[backbutton setImage:backButtonImage forState:UIControlStateNormal];此行 –

+1

謝謝,工作過! – Steaphann

0

使用

self.navigationItem.leftBarButtonItem = back; 

而不是

self.navigationController.navigationItem.leftBarButtonItem = back; 
1

將您的代碼自定義後按鈕,然後將該viewController推送到堆棧。並設置BackBarButtonItem,而不是LeftBarButtonItem。

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]; 
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"]]; 
} 
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]; 
相關問題