Search code examples
iosiphoneuinavigationcontrolleruinavigationbaruinavigationitem

Custom Back Button for Navigation Bar


I made a category of UINavigationBar as follow:

UINavigationBar (UINavBar_Category)

I want to create custom back button using this.

I can able to set image by following code:

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:[UIImage imageNamed:@"btn_back.png"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

Problem can not able to change title of back button.

My try

 - (void)didMoveToSuperview
{
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:lang(@"btnBack") style:UIBarButtonItemStylePlain target:nil action:nil];
    self.topItem.backBarButtonItem=backButton;
}

Help me to solve this!

Thanks in advance


Solution

  • enter image description here

    Try this code instead.. Here a button is first created , its title and image is set and then it is set as left bar button item of navigation controller.

    UIButton *backBarButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 100, 29)];
    
    [backBarButton setTitle:@"  Log Out" forState:UIControlStateNormal];
                    [backBarButton setImage:[UIImage 
    imageNamed:@"leftarrow_ipad.png"] forState:UIControlStateNormal];
    
    [backBarButton addTarget:self action:@selector(backAction:) forControlEvents:UIControlEventTouchUpInside];
    
    UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backBarButton];
    
    self.navigationItem.leftBarButtonItem = backBarButtonItem;