Précédent   Forum du club des développeurs et IT Pro > Systèmes > Mac > Objective-C
Objective-C Forum d'entraide sur le langage de programmation Objective-C
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 10/07/2012, 13h06   #1
Shargat
Nouveau Membre du Club
 
Stagiaire R&D
Inscription : janvier 2008
Messages : 137
Détails du profil
Informations professionnelles :
Activité : Stagiaire R&D
Secteur : Communication - Médias

Informations forums :
Inscription : janvier 2008
Messages : 137
Points : 38
Points : 38
Par défaut Dry UINavigationBar customization

Bonjour,

Ma question concerne une customization de UINavigationBar que je souhaite garder sur chaque vue pushée. Je m'explique :

J'ai un MainViewController dans lequel est "embeded" un NavigationController. J'ai customizé la NavigationBar comme ci dessous (TopBarViewController est chargé de géré le clic sur les boutons custom de la NavigationBar):

Code :
1
2
3
4
5
6
7
8
-(void) buildToolBar
{
   // Add the TopBarView Controller
    self.topBarController = [[TopBarViewController alloc] init];
    UIBarButtonItem *buttonItems  =[[UIBarButtonItem alloc] initWithCustomView:self.topBarController.view];
    self.navigationItem.rightBarButtonItem = buttonItems;
    buttonItems = nil;
}
Ca marche super ! Sauf que lorsque je change de vue en y pushant une nouvelle dans la pile, la customization disparait.

Code :
1
2
3
4
// Pushing a new view
DetailView_familyViewController *detailView = [[DetailView_familyViewController alloc] initWithNibName:@"DetailView_family" bundle:nil];
[self.navigationController pushViewController:detailView animated:YES];
detailView = nil;
J'aurais souhaité que cette customization soit visible sur l'ensemble des vues pushées / poppées. J'imagine que c'est un besoin souvent requis dans les applis. Quel pattern devrais-je employer ? Une solution serait de recopier la customization dans toutes les vues pushées, mais ce ne serait absolument pas DRY.

Merci d'avance et bonne journée.

EDIT :
Une solution que j'ai trouvée et qui marche est de créer un UIViewController parent qui implémente la customization de la NavigationBar. Tout contrôler enfant de ce parent aura la même customization. Est-ce une bonne solution selon vous ? Sachant que dans la documentation officielle de UINavigationItem, on peut lire :

Citation:
Avoid tying the creation of bar button items in your navigation item to the creation of your view controller’s view
Shargat est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 14h59.


 
 
 
 
Partenaires

Hébergement Web