プログラムで 0 にリセットしようとしている 2 つのセグメント (インデックス: 0 と 1) を持つ UISegmentedControl があります。以下のコマンドを実行すると、期待どおりにセグメント インデックスが 0 にリセットされません。代わりに、インデックス 1 のセグメントが強調表示されます。
[seg setSelectedSegmentIndex:0];
奇妙なことに、選択したセグメントをログに記録すると、 が返されます0
。
NSLog(@"seg setSelectedSegmentIndex %d", seg.selectedSegmentIndex);
また、奇妙なことに、実行後、setSelectedSegmentIndex:0
セグメント 0 をタッチで手動で再選択することはできません。セグメント 1 にロックされているように見えますが、1 をタップすると正常に機能します。
ボタンの設定は次のとおりです。
itemArray = [NSMutableArray arrayWithObjects: @"Zero", @"One", 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];
注:この質問で達成しようとしていたことをもう一度述べると、変数を介して UISegmentedControl の選択されたインデックスを動的に設定し、適切な視覚的フィードバックを取得し、メソッドで選択されたインデックスをチェックして、選択したものに応じて何かを実行したいと考えています。索引。解決策については、以下の私の回答を参照してください。