2009-09-14 7 views
1

J'ai un contrôleur de navigation qui a également une vue de table. Je veux ajouter une image côté gauche de la barre de navigation sur le dessus par programmation. Lorsque j'ai essayé d'ajouter du code ci-dessous dans viewDidLoad:iPhone-SDK: Ajouter une image sur la barre de navigation:

CGRect frame = CGRectMake(0.0, 0.0, 94.0, 33.0); 
    UIImageView *image = [ [UIImageView alloc]initWithImage:[UIImage imageNamed:@"topBarImage.png"] ]; 
    image.frame = frame; 
    [self.view addSubview:image]; 

mais il ajoute au haut de la vue de la table au lieu de l'onglet de navigation. Je pense que cette image devrait être ajoutée en tant que navigationItem. Mais je ne sais pas comment ajouter une image sur le côté gauche de la barre de navigation par programme. Quelqu'un pourrait-il guider s'il vous plaît?

Clave/

+0

J'AI RÉSOLU En ajoutant l'image comme sous-vue de la barre de navigation. –

Répondre

14

vous suffit d'utiliser une vue personnalisée pour un élément de bouton de la barre. Voici un exemple d'un avec un bouton d'image personnalisée

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
[button setImage:[UIImage imageNamed:@"myImage.png"] forState:UIControlStateNormal]; 
[button addTarget:self action:@selector(blah) forControlEvents:UIControlEventTouchUpInside]; 
[button setFrame:CGRectMake(0, 0, 32, 32)]; 
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button]; 

Vous voulez le faire de cette façon parce que le titre du contrôleur de navigation sera automatiquement redimensionnée cette façon. Si vous le faites à votre façon (sous-vue de la barre de navigation), le texte sera placé derrière ou sur l'image

éditer: il restera également à l'écran lorsque vous appuyez sur les contrôleurs de vue. Edit2: encore une fois, vous pouvez utiliser une image comme vue personnalisée et non le bouton. Voici le code

UIImageView *iv = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,32,32)]; 
[iv setImage:[UIImage imageNamed:@"myImage.png"]]; 
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:iv]; 
[iv release]; 
+0

Je ne veux pas d'image sur le bouton, je ne ferai rien avec cette image. Il devrait montrer juste une image sur la barre de navigation. C'est tout. –

+0

alors ne le faites pas un bouton. ABarButtonItem n'a rien à faire. Il suffit de définir votre image comme le bouton dans la vue personnalisée et il apparaîtra comme l'image. Si vous ne définissez pas une action pour l'image, il n'appellera rien – coneybeare

+0

Encore une chose, je veux une image sur le côté gauche, j'ai déjà placé le bouton droit. –

Questions connexes