I'm not sure why they never answered about this, but if you're still looking, just create a property for BarButtonItem in your .h, assign it to IB, and then set the background property of this barButtonItem. Works fine for me and never "reverts to the default look."
- (void)viewDidLoad { [super viewDidLoad]; [self.barButton setBackgroundImage:[UIImage imageNamed:@"YOURIMAGE"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; }
source share