2012-12-13 82 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]; 
相关问题