2012-07-03 1 views
1

J'ai l'application basée UITableView, et je ne peux pas définir backBarButtonItem correctement. Le bouton Précédent est le bouton qui apparaît lorsque je sélectionne un élément, appelez la deuxième vue avec la méthode didSelectRowAtIndexPath. Lorsque je tente de le définir comme ceci:Impossible de définir l'image à backBarButtonItem

UIButton *back1=[UIButton buttonWithType:UIButtonTypeCustom]; 
    [back1 setFrame:CGRectMake(10.0, 2.0, 45.0, 40.0)]; 
    [back1 addTarget:nil action:NULL forControlEvents:UIControlEventTouchUpInside]; 
    [back1 setImage:[UIImage imageNamed:@"back_button.png"] forState:UIControlStateNormal]; 
    UIBarButtonItem *back = [[UIBarButtonItem alloc]initWithCustomView:back1]; 
    self.navigationItem.backBarButtonItem = back; 

Il y a juste le bouton de retour avec style par défaut et en quelque sorte avec le titre de la fenêtre de ma commande TableView.

Quand je tournerai comme ceci:

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] 
           initWithImage:[UIImage imageNamed:@"back_button.png"] 
           style:UIBarButtonItemStyleBordered 
           target:nil 
           action:nil]; 

self.navigationItem.backBarButtonItem = backButton; 

Il y a une image, mais il ressemble à « inséré » dans le bouton par défaut en arrière, ne semble pas agréable du tout.

S'il vous plaît aidez-moi .. je l'ai essayé plusieurs façons de résoudre ce problème, mais, dans de nombreux cas, il est sélectionné par défaut juste titre avec le bouton Retour « Produits » (il est le titre qui apparaît au-dessus de la barre de navigation dans mon UITableView). Toute aide serait appréciée!

Répondre

0

Vous devez l'affecter à self.navigationItem.leftBarButtonItem.

self.navigationItem.leftBarButtonItem = backButton; 
+0

Im ont déjà un .. un bouton plus dans le coin supérieur gauche. Aussi avec une image personnalisée. –

2
UIImage *buttonImage = [UIImage imageNamed:@"back_button.png"]; 
    UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [backButton setBackgroundImage:buttonImage forState:UIControlStateNormal]; 
    [backButton setTitle:@"Back" forState:UIControlStateNormal]; 
    backButton.font = [UIFont boldSystemFontOfSize:12]; 
backButton.frame = CGRectMake(0, 0, buttonImage.size.width, buttonImage.size.height); 
[backButton addTarget:self action:@selector(showMeter) 
     forControlEvents:UIControlEventTouchUpInside]; 

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] 
     initWithCustomView:backButton]; 
1
//Create resizable images 
UIImage *myButton = [[UIImage imageNamed:@"yourButton"] 
     resizableImageWithCapInsets:UIEdgeInsetsMake(0, 5, 0, 5)]; 


//Set the background image for *all* UIBackBarButtons 
[[UIBarButtonItem appearance] setBackgroundImage:myButton forState:UIControlStateNormal 
    barMetrics:UIBarMetricsDefault]; 
+0

Merci James mais c'est toujours le même problème ( –

+0

Est-ce que ça change l'image du tout? – James

+0

Eh bien, je me demande pourquoi ça arrive, mais ça remplace le titre pour le bouton retour (de "Retour" à "Produits", "Produits" est affiché sur le centre de ma barre de navigation) –

Questions connexes