J'ai eu un problème similaire. Et j'ai d'abord suivi le chemin proposé par @drawnonward, mais a couru dans des problèmes lorsque j'ai essayé de mon action présente une liste de contrôleur sur un iPad: à l'Aide d'un intégré à UIButton comme un affichage personnalisé signifie que le UIButton est l'expéditeur de l'événement, et la liste du contrôleur de presentPopoverFromBarButtonItem: méthode se bloque lorsqu'il tente d'envoyer des messages qui ne sont appropriées que pour les réels UIBarButtonItems.
La solution que j'ai finalement trouvé était de voler l'image que je voulais utiliser ("info" icône) à partir d'un jetable UIButton, et de construire mon UIBarButtonItem comme suit:
// Make the info button use the standard icon and hook it up to work
UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
UIBarButtonItem *barButton = [[[UIBarButtonItem alloc]
initWithImage:infoButton.currentImage
style:UIBarButtonItemStyleBordered
target:self
action:@selector(showInfo:)] autorelease];
L'utilisation de ce initialiseur de rendements d'un bouton de la barre dont la cible et le sélecteur fonctionnent réellement. Il est également plus facile que d'habillage de l'image dans la vue personnalisée, mais c'est juste la cerise.