Comment append une image dans UINavigationBar dans l’application IPhone

Dans mon application, je veux append une image (logo) dans la barre de navigation. Je travaille sur XCode 4.2 et iOS 5.

Je connais UINavigationBar , UIToolBar a été modifié dans iOS 5. UINavigationBar code iOS 4.2 UINavigationBar ne fonctionnera pas sous iOS 5.

Je veux prendre en charge l’image d’affichage dans UINavigationBar dans les versions 4.2 et 5.

Je veux être une image d’affichage dans UINavigationBar comme dans la capture d’écran ci-dessous.

Image de la barre de navigation

S’il vous plaît aider à cet égard et s’il y a un exemple de code signifie son très utile pour moi.

Merci!!!

L’une des méthodes possibles consiste à utiliser UINavigationItem.titleView et UINavigationItem.rightBarButtonItem . Comme ça :

 viewController.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yourimage.png"]]; UIBarButtonItem * item = [[UIBarButtonItem alloc] initWithCustomView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yourimage2.jpg"]]]; viewController.navigationItem.rightBarButtonItem = item; 

Ici, j’utilise UIImageView tant que vue personnalisée, mais cela peut être UIButton avec une image personnalisée.

Une autre façon sans utiliser un viewController

 // Create your image UIImage *image = [UIImage imageNamed: @"logo.png"]; UIImageView *imageview = [[UIImageView alloc] initWithImage: image]; // set the image view to the title view self.navigationItem.titleView = imageview; 

Version Swift: Vous pouvez créer une extension de protocole pour utiliser la fonction dans vos contrôleurs de vue

 protocol Customizable { var navigationItem: UINavigationItem { get } } extension Customizable { func setNavBarLogo() { let logo = UIImage(named: "logo") let logoImageView = UIImageView(image: logo) self.navigationItem.titleView = logoImageView } }