2009-07-28 4 views
2

Est-ce que quelqu'un sait comment ajouter deux boutons système en haut à droite de ma barre d'outils de navigation? Je sais que des boutons personnalisés peuvent être ajoutés, et je ne comprends vraiment pas pourquoi les boutons du système ne peuvent pas le faire aussi.Barre d'outils de navigation à droite deux boutons

Et j'en ai vraiment besoin. J'ai besoin d'un bouton d'ajout et d'un bouton d'édition.

Modifier pour réorganiser et supprimer les lignes du tableau. Ajouter pour ajouter une nouvelle ligne.

Je ne peux pas utiliser la barre d'outils inférieure parce que j'ai une barre d'onglets là.

Quelqu'un pourrait-il m'aider?

Répondre

0

Avec la barre de navigation par défaut, vous ne pouvez avoir que trois boutons, sauf s'il me manque quelque chose. Un à gauche, un au centre et un à droite. Même si vous créez un bouton plus petit et que vous pensez avoir suffisamment d'espace, les touches seront toutes enregistrées sur le même bouton (celui qui est lié à la droite ou à la gauche). Si vous voulez obtenir des fonctionnalités comme les barres de navigation de Google, je vous suggère de l'implémenter vous-même. Ce ne serait vraiment pas si difficile, et vous obtiendriez exactement la fonctionnalité que vous voulez. Si vous décidez de le faire, je suis sûr que SO peut vous guider à travers les parties difficiles.

0

Je me demande ce qui se passerait si vous utilisez une vue personnalisée pour votre UINavigationItem:

myViewController.navigationItem.titleView = myCustomView; 

J'imagine que le titleview pourrait développer tout le chemin à droite si vous ne disposez pas d'un bouton là. Je remarque que le texte du titre prend plus de place s'il n'y a pas de bouton droit.

Ensuite, vous pouvez ajouter une étiquette (pour le titre) et vos deux boutons à cette vue personnalisée.

3

Quelque chose comme cela devrait fonctionner (remplacer vos propres images et méthodes d'action):

#define ACTIONEDIT 0 
#define ACTIONADD 1 
... 
UISegmentedControl* segmentedControl = [[UISegmentedControl alloc] 
     initWithItems: [NSArray arrayWithObjects: 
     [UIImage imageNamed:@"icon-edit.png"], 
     [UIImage imageNamed:@"icon-add.png"], 
     nil] 
     ]; 
[segmentedControl addTarget:self 
        action:@selector(segmentAction:) 
      forControlEvents:UIControlEventValueChanged]; 

segmentedControl.frame = CGRectMake(0, 0, 90, 30); 
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; 
segmentedControl.momentary = YES; 
[segmentedControl setEnabled:YES forSegmentAtIndex:ACTIONEDIT]; 
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] 
         initWithCustomView:segmentedControl]; 

... 

- (void)segmentAction:(id)sender 
{ 
    UISegmentedControl* segCtl = sender; 
    int action = [segCtl selectedSegmentIndex]; 
    switch (action) { 
    case ACTIONADD: 
    [self addToList]; 
    break; 
    case ACTIONEDIT: 
    [self editList]; 
    break; 
    } 
} 
Questions connexes