ios 5 change the background of back button in navigation controller to transparent

后端 未结 1 1459
余生分开走
余生分开走 2020-12-30 13:58

I have customised the navigation controller title bar with a background image, but I am really struggling to change the background color of the back button to transparent so

相关标签:
1条回答
  • 2020-12-30 14:32

    You can't change the appearance of the default back button, but you can create your own button to replace it.

    - (void)viewDidLoad {
    
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
        if ([self.navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)] ) {
            UIImage *image = [UIImage imageNamed:@"greenbar.png"];
            [self.navigationController.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
           // [[UIBarButtonItem appearance] setBackButtonBackgroundImage:image forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
    
        } 
    
        //change back button image
        if(self.navigationController.viewControllers.count > 1) {
            UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
    
            [backButton setTitle:@"Back" forState:UIControlStateNormal];
            [backButton addTarget:self action:@selector(didTapBackButton:) forControlEvents:UIControlEventTouchUpInside];
            backButton.frame = CGRectMake(0.0f, 0.0f, 64.0f, 41.0f);
            UIBarButtonItem *backButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
    
            self.navigationItem.leftBarButtonItem = backButtonItem;
        }
    }
    
    
    
    - (void) didTapBackButton:(id)sender {
        if(self.navigationController.viewControllers.count > 1) {
            [self.navigationController popViewControllerAnimated:YES];
        }
    }
    
    0 讨论(0)
提交回复
热议问题