Grâce à iOS5 vous êtes maintenant en mesure de personnaliser l'apparence d'un UINavigationBar sans avoir à la sous-classe ou créer une catégorie.
Le bloc de code suivant (les mettre dans votre applicationDidFinishLoading: méthode) va changer la UINavigationBar pour l'ensemble de la demande quelle que soit l'image que vous donnez.
Remarque, cela ne fonctionnera que dans iOS5
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"nav bar.png"] forBarMetrics:UIBarMetricsDefault];
Cependant, vous êtes également en mesure de modifier l'apparence d'un seul UINavigationBar en fonction de ce que la vue du contrôleur que vous êtes en utilisant le code suivant dans le viewDidLoad.
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"nav bar.png"] forBarMetrics:UIBarMetricsDefault];
Le code ci-dessus est uniquement de discuter de la nouvelle façons de personnaliser le UINavigationBar apparence grâce à iOS5. Cependant, il n'est pas de discuter de la façon dont les boutons ont été mis en œuvre.
Toutefois, l'ajout de boutons est radicalement différente. Pour cela, je vous recommande de sous-classement UINavigationBar
, puis en ajoutant les boutons, si nécessaire à travers qui. Vous pourriez sans même s'en tirer avec juste une norme UINavigationBar
mais la coutume UIBarButtonItem
s qui s'écoule d'un point de vue particulier.
Par exemple:
UIView *rightButton = [[[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 30.0f, 30.0f)] autorelease];
[rightButton addSubview:[UIImage imageNamed:@"rightButtonImage.png"]];
UIBarButtonItem *rightButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:rightButton] autorelease];
[rightButtonItem setAction:@selector(rightButtonAction:)];
Je n'ai pas testé ce code, de sorte qu'il n'est pas un copier/coller de la solution, mais ça vous donne une idée de ce qui doit être fait pour atteindre "personnalisé" à la recherche UIBarButtonItems.
Bonne chance!