2008-12-05 4 views
10

Je voudrais mettre un UIButton au centre de la barre de navigation. Basé sur le document, il semble que je dois définir la vue de titre, et m'assurer que le LeftBarButtonItem est nul. Mais ce n'est pas un travail pour moi. Voici le code.Pourquoi le fichier navigationItem.titleView ne fonctionne-t-il pas?

UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
[btn setTitle:@"List" forState:UIControlStateNormal]; 
self.navigationItem.leftBarButtonItem = nil; 
[self.navigationItem.titleView addSubview:btn]; 

Répondre

26

Si vous examinez votre bouton, vous constaterez que l'aide de la méthode pratique pour l'initialiser vous reste un bouton 0x0 qui est positionné à 0,0 dans le limites de la vue, il est ajouté à. Avant cela, vous devez définir le contenu de la propriété frame du bouton. Voir le code ci-dessous:

UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
btn.frame = CGRectMake(0, 0, 400, kCustomButtonHeight); 
[btn setTitle:@"list" forState:UIControlStateNormal]; 
self.navigationItem.titleView = btn; 
+0

Il fonctionne, merci! – BlueDolphin

+1

Toujours, btn n'est pas cliquable. – Abha

7

La vue du paramètre navigationItem est définie par défaut à zéro.

Vous devez utiliser

self.navigationItem.titleView = btn; 
4

Dans mon cas, je tente de le mettre dans un contrôleur de vue de l'enfant, que ce soit réglé, il

self.parentViewController.navigationItem.titleView = titleView; 
Questions connexes