Domanda

Creo una vista destra personalizzata come segue:

// 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];

Quindi lo aggiungo alla mia barra di navigazione come segue:

// 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];

Posso nasconderlo come segue:

self.navigationItem.rightBarButtonItem.customView.hidden = NO;

Domanda ... ma come posso disabilitare tutto (o meglio, un elemento specifico) del controllo segmentato?

Quanto segue non funziona.

self.navigationItem.rightBarButtonItem.enabled = NO;

Qualsiasi idea è apprezzata...

Grazie,
opaco

È stato utile?

Soluzione

UISegmentedControl.h

- (void)removeSegmentAtIndex:(NSUInteger)segment animated:(BOOL)animated;
- (void)removeAllSegments;
- (void)setEnabled:(BOOL)enabled forSegmentAtIndex:(NSUInteger)segment;       //default is YES

  e.g. [segmentedControl setEnabled:NO forSegmentAtIndex:1];

Spero che aiuti

Altri suggerimenti

[navItem.rightBarButtonItem setEnabled:NO];

così semplice:)

Riferimento: http: // sviluppatore .apple.com / library / ios / # documentazione / UIKit / riferimento / UIBarItem_Class / Reference / Reference.html Vedere la abilitato Proprietà.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top