UIBarButtonItem tem o initWithCustomView.
Assim se você o criará UIButton, a seguir pode escrever algo como:
*barButtonItem de UIBarButtonItem = [[initWithCustomView do alloc de UIBarButtonItem]: theUIButtonYouCreated
];
http://developer.apple.com/iphone/library/documentation/uikit/reference/UIBarButtonItem_Class/Reference/Reference.html#//apple_ref/occ/instm/UIBarButtonItem/initWithCustomView:
Aqui você verá um exemplo curto:
Como usar um costume UIBarButtonItem para indicar um UIActivityIndicatorView
http://www.leegillen.com/Public/Blog/Entries/2008/10/26_How_to_use_a_custom_UIBarButtonItem_to_display_a_UIActivityIndicatorView.htmlRealmente esta classe tem o initWithImage demasiado.