Dans mon application, je veux ajouter une image (logo) dans la barre de navigation. Je travaille sur XCode 4.2 et iOS 5.
Je sais que UINavigationBar
, UIToolBar
a été modifié dans iOS 5. Le code iOS 4.2 UINavigationBar
ne fonctionnera donc pas dans iOS 5.
Je veux prendre en charge l'image d'affichage dans UINavigationBar
dans les versions 4.2 et 5.
Je veux afficher l'image dans UINavigationBar
comme dans la capture d'écran ci-dessous.
S'il vous plaît, aidez à cet égard et s'il y a un exemple de code, cela me sera très utile.
Merci!!!
Pour ce faire, vous pouvez 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
comme 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
}
}