When I try to use UIBarButtonItem\'s \"initWithImage\" to initialize a navigation bar custom image, it comes out washed-up and stretched against a black navigation bar. This

I got the same stretched issue for my 40x40 image when I set the background image for leftBarButtonItem
UIBarButtonItem *backButton = [UIBarButtonItem new];
[backButton setBackButtonBackgroundImage:[UIImage imageNamed:@"back_icon"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
self.navigationItem.leftBarButtonItem = backButton;
But my issue got resolved with the following code

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"back_icon"] style:UIBarButtonItemStylePlain target:self action:@selector(handleBack:)];
self.navigationItem.leftBarButtonItem = backButton;
and same result if UIBarButtonItemStyleBordered is used.