créer une vue personnalisée à droite comme suit:Désactivation de la vue de droite personnalisée UINavigationItem?
// Build the Segmented Control
NSArray *segmentTextContent = [NSArray arrayWithObjects:[UIImage imageNamed:@"arrow-dice.png"], [UIImage imageNamed:@"arrow-up.png"], [UIImage imageNamed:@"arrow-down.png"], nil];
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:segmentTextContent];
// Customize the Segmented Control
segmentedControl.momentary = YES;
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
[segmentedControl addTarget:self action:@selector(segmentChanged:) forControlEvents:UIControlEventValueChanged];
Puis-je ajouter à ma barre de navigation comme suit:
// Add the control to the navigation bar right item
UIBarButtonItem *segmentItem = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl];
[segmentedControl release];
self.navigationItem.rightBarButtonItem = segmentItem;
self.navigationItem.rightBarButtonItem.title = @"";
[segmentItem release];
je peux le cacher comme suit:
self.navigationItem.rightBarButtonItem.customView.hidden = NO;
QUESTION ... mais comment puis-je désactiver tout (ou mieux, un élément spécifique) du contrôle segmenté?
Ce qui suit ne fonctionne pas.
self.navigationItem.rightBarButtonItem.enabled = NO;
... Toutes les idées appréciées
Merci,
mat
Merci, j'avais manqué ça dans les docs. Existe-t-il un moyen plus simple de désactiver le contrôle entier plutôt que de le faire pour chaque segment à tour de rôle? –
C'est une sous-classe de UIControl, donc vous devriez pouvoir faire segmentedControl.enabled = NO ;. Dans le code que vous avez présenté ci-dessus, vous devez ajouter ".customView" après "rightBarButtonItem" et avant ".enabled". –
Cela n'a pas fonctionné pour moi, malheureusement. Enabled n'est pas une propriété valide de CustomView. –