geek space web solutions

Customiser le bouton Retour d'une application en Objective-C

Tuesday, 17 April 2012 12:43
There are no translations available.

custom back button
Customiser son application pour iPhone ou iPad peut s'avérer fastidieux ! J'explique dans cet article comment customiser le bouton "Retour" d'une application développée en Objective-C avec une image.


Le principe est de remplacer le bouton par défaut par un bouton customisé avec une image. Il faut créer un conteneur pour pouvoir placer le nouveau bouton dans la barre de navigation. Dans l'exemple ci-dessous, je donne également la fonction pour retourner à la "vue" précédente.





Ci-dessous, les 2 images pour les 2 résolutions d'iPhone à ajouter dans le répertoire "Resources" dans X-Code :
Pour la gestion des 2 résolutions vous devez ajouter "@2x" au nom de l'image de grande résolution pour qu'elle soit automatiquement prise en charge par les iPhone en 640x960 (iPhone 4) !


custom back button


custom back button


- (void)replaceBackButton:(NSString *)strlabelButton {
   
    // création d'une image
     UIImage *btnImg = [UIImage imageNamed:@"btn-back.png"];
    

    // création d'un bouton
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
    

    // ajout de l'image sur le bouton
    [btn setBackgroundImage:btnImg forState:UIControlStateNormal];

    
    // On définit le label
    UILabel *labelBackButton = [[UILabel alloc] initWithFrame:CGRectMake(4, 3, btnImg.size.width, btnImg.size.height)];
    labelBackButton.backgroundColor = [UIColor clearColor];
    labelBackButton.textColor = [UIColor colorWithHexString:@"787878"];
    labelBackButton.textAlignment = UITextAlignmentCenter;
    labelBackButton.font = [UIFont fontWithName:FONT_HELVETICA_NEUE_77_BC size:14];
    labelBackButton.text=strlabelButton; //@"Ambiances";
    labelBackButton.shadowColor=[UIColor whiteColor];
    labelBackButton.shadowOffset=CGSizeMake(0,1);

   
    // On ajoute le label dans le bouton
    [btn addSubview:labelBackButton];

    
    // place et taille du bouton
    btn.frame = CGRectMake(0, 0, labelBackButton.frame.size.width, labelBackButton.frame.size.height);

    
    // Ajout d'une fonction déclenchée par le clic sur le bouton
    [btn addTarget:self action:@selector(backView) forControlEvents:UIControlEventTouchUpInside];

    
    // On crée le container
    UIView *containerBack=[[UIView alloc] init];

    // On ajoute le bouton
    [containerBack addSubview:btn];

    
    //Les positions X-Y ne fonctionneront pas ici
    containerBack.frame=CGRectMake(0, 0, labelBackButton.frame.size.width+14, labelBackButton.frame.size.height);

    
    // On ajoute le container à l'emplacement du bouton retour (leftBarButtonItem);
    UIBarButtonItem *aBarButtonItemBack=[[UIBarButtonItem alloc] initWithCustomView:containerBack];

    self.navigationItem.leftBarButtonItem=aBarButtonItemBack;
    

    // Les release
    [labelBackButton release];
    [containerBack release];
    [aBarButtonItemBack release];

}



/* Cette fonction est déclenchée par le bouton "back", elle permet de revenir à la vue précédente */
- (void)backView {

    UINavigationController *navController = self.navigationController;
    [navController popViewControllerAnimated:YES];

}

 

Add comment


Security code
Refresh

Sections


Last articles

Accélérer la fermeture de Wi... Afficher les Polices référen... Utiliser la Squeezebox de Jo... Problèmes de codage utf-8 av... Problème de pixels verts dan... Afficher un Plane Papervisio... MorfeoShow : Choses à savoir... Précautions à prendre avec l... Écouter l'événement SOUND_CO... position:absolute with ie6 d...

Sondages

Do you think HTML5 can completely replace Flash ?
 
Would you be interested in an online XML editor ?
 

Paypal

paypal

Code du plugin Joomla AutoSEO 1.2 par www.geek-space.fr