Я бы предпочел использовать UIButton внутри UIBarButtonItem и настроить его.
Это пример с пользовательской графикой для пользовательской кнопки UIB. Идея остается той же самой, используя initWithCustomView
UIBarButtonItem, чтобы добавить в него что-то другое, что легко настраивается.
self.closeButton = [UIButton buttonWithType:UIButtonTypeCustom];
[closeButton setImage:[UIImage imageNamed:@"webview_close_button_normal.png"] forState:UIControlStateNormal];
[closeButton setImage:[UIImage imageNamed:@"webview_close_button_pressed.png"] forState:UIControlStateHighlighted];
closeButton.frame = CGRectMake(0, 0, 121, 36);
[closeButton addTarget:self action:@selector(closeAdViewController) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem * aBarButtonAdClose = [[[UIBarButtonItem alloc] initWithCustomView:closeButton] autorelease];