J'ai une application avec 4 onglets. Chaque onglet est un UINavigationController. Les 4 onglets UINavigationBar doivent être identiques, avoir une image d'arrière-plan personnalisée, un backButton personnalisé et un bouton droit personnalisé déclenchant une fonction.Boutons personnalisés UINavigationBar iPhone
Je voudrais faire ces personnalisations une seule fois dans mon code et non dans chaque RootViewController.
je réussi à avoir une image d'arrière-plan personnalisé en insérant ce code dans mon appDelegate:
@implementation UINavigationBar (CustomImage)
- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed: @"MyNavigationBar.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end
Mais je ne suis pas parvenu à personnaliser les boutons arrière et droite ou spécifier l'action du bouton droit.
Existe-t-il un moyen de le faire dans appDelegate, tout comme pour l'image d'arrière-plan?
Ou devrais-je faire la personnalisation dans chaque RootViewController?
Articles Merci, mais je dois écrire ce code dans chaque RootViewController (pour chaque NavigationController). Ce que je veux, c'est pouvoir écrire le code une seule fois pour tous les NavigationControllers, comme je l'ai fait pour l'image de fond avec la catégorie dans mon appDelegate. –
Dans ce cas, créez un objet qui encapsule cette méthode ci-dessus et appelez-le dans chaque classe applicable. Vous pouvez transmettre l'image, le sélecteur et le cadre du bouton en tant que paramètres. – user298261