Deaktivieren UINavigationItem benutzerdefinierte Ansicht von rechts?
-
22-08-2019 - |
Frage
Ich erstelle eine benutzerdefinierte rechte Ansicht wie folgt:
// 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];
Dann füge ich es zu meiner Navigationsleiste wie folgt:
// 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];
Ich kann es verstecken wie folgt:
self.navigationItem.rightBarButtonItem.customView.hidden = NO;
FRAGE ... aber wie kann ich deaktivieren Sie alle (oder besser gesagt, ein bestimmtes Element) der segmentierten Steuer?
Die folgenden funktioniert nicht.
self.navigationItem.rightBarButtonItem.enabled = NO;
Alle Ideen geschätzt ...
Danke,
matt
Lösung
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];
Hoffe, das hilft
Andere Tipps
[navItem.rightBarButtonItem setEnabled:NO];
So einfach ist das:)
Referenz: http: // Entwickler .apple.com / library / ios / # Dokumentation / UIKit / reference / UIBarItem_Class / Reference / reference.html Sehen Sie die aktiviert Eigenschaft.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow