Ich habe einen UISegmentedControl mit zwei Segmenten (Index: 0 und 1), den ich programmgesteuert auf 0 zurücksetzen möchte. Wenn ich den folgenden Befehl ausführe, wird der Segmentindex nicht wie erwartet auf 0 zurückgesetzt. Stattdessen wird das Segment mit Index 1 hervorgehoben.
[seg setSelectedSegmentIndex:0];
Ungewöhnlicherweise gibt es, wenn ich das ausgewählte Segment protokolliere, 0
zurück.
NSLog(@"seg setSelectedSegmentIndex %d", seg.selectedSegmentIndex);
Ebenso merkwürdig ist, dass ich nach dem Ausführen von setSelectedSegmentIndex:0
Segment 0 nicht manuell durch Berührung erneut auswählen kann. Es scheint auf Segment 1 festgelegt zu sein, bis ich 1 antippe, woraufhin es wie gewohnt funktioniert.
Hier ist das Setup für den Button:
itemArray = [NSMutableArray arrayWithObjects: @"Null", @"Eins", nil];
seg = [[UISegmentedControl alloc] initWithItems:itemArray];
[seg setFrame:segRect];
seg.segmentedControlStyle = UISegmentedControlStyleBar;
seg.momentary = NO;
[seg addTarget:self action:@selector(someAction:) forControlEvents: UIControlEventValueChanged];
[mainView addSubview:seg];
HINWEIS: Um zu wiederholen, was ich mit dieser Frage erreichen wollte: Ich möchte den ausgewählten Index eines UISegmentedControl dynamisch über eine Variable setzen, das entsprechende visuelle Feedback erhalten und den ausgewählten Index in einer Methode überprüfen, um je nach ausgewähltem Index etwas geschehen zu lassen. Siehe meine Antwort unten für eine Lösung.