`

自定义导航栏上的返回按钮UINavigationController

阅读更多

转自:http://blog.csdn.net/kmyhy/article/details/6869135

 

//.h

 

#import <UIKit/UIKit.h>

@interface MyNavigationController : UINavigationController

@end

 

//.m

 

#import "MyNavigationController.h"

@implementation MyNavigationController


-(void)popself
{
    
    [self popViewControllerAnimated:YES];
    
}

-(UIBarButtonItem*) createBackButton

{ 
    UIImage* image= [UIImage imageNamed:@"navi_back_btn"];
    UIImage* imagef = [UIImage imageNamed:@"navi_back_f_btn"];
    CGRect backframe= CGRectMake(0, 0, image.size.width, image.size.height); 
    UIButton* backButton= [UIButton buttonWithType:UIButtonTypeCustom];
    backButton.frame = backframe;
    [backButton setBackgroundImage:image forState:UIControlStateNormal];
    [backButton setBackgroundImage:imagef forState:UIControlStateHighlighted];
    [backButton setTitle:@"返回" forState:UIControlStateNormal]; 
    [backButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 
    backButton.titleLabel.font=[UIFont systemFontOfSize:12]; 
    [backButton addTarget:self action:@selector(popself) forControlEvents:UIControlEventTouchUpInside]; 
    //定制自己的风格的  UIBarButtonItem
    UIBarButtonItem* someBarButtonItem= [[UIBarButtonItem alloc] initWithCustomView:backButton]; 
    return someBarButtonItem;
    
//    return [[UIBarButtonItem alloc]initWithTitle:@"返回" style:UIBarButtonItemStyleBordered target:self action:@selector(popself)];
    
} 

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated 

{ 
    
    [super pushViewController:viewController animated:animated]; 
    
    if (viewController.navigationItem.leftBarButtonItem== nil && [self.viewControllers count] > 1) 
    { 
        
        viewController.navigationItem.leftBarButtonItem =[self createBackButton];
        
    } 
    
} 

@end
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics