UISegmentedControll
をプログラムで切り替えるにはどうすればよいですか?
selectedSegmentIndex プロパティは、UISegmentedControlの選択されたセグメントを識別します。このプロパティを有効なセグメントインデックスに設定するか、 ISegmentedControlNoSegment (-1)を選択して現在の選択をオフにします。
// select the first segment
segmented.selectedSegmentIndex = 0;
// turn off the current selection
segmented.selectedSegmentIndex = UISegmentedControlNoSegment;
あるいは、たとえばselectedSegmentIndex呼び出しを変更した後、「sendActionsForControlEvents:」を呼び出します。
segmentedControl.selectedSegmentIndex = 0
[segmentedControl sendActionsForControlEvents:UIControlEventValueChanged];
@jmstone応答、true、このアクションはこのコントロールのvalueChangedイベントを呼び出しません。
これを克服する1つの方法は、関数を自分で呼び出すことです。
segmentedControl.selectedSegmentIndex = 3;
[self valueChangedMethod:segmentedControl];
これは呼び出します:
- (void)valueChangedMethod:(UISegmentedControl *)segmentedControl
{
//continue your code here...
}
Swiftの場合:
segmentedControl.selectedSegmentIndex = 1
スイフト2:
segmentedControl.sendActionsForControlEvents(UIControlEvents.ValueChanged)
スウィフト3:
segmentedControl.sendActions(for: UIControlEvents.valueChanged)
セグメント化されたコントロールが変更されていない場合、同様の問題が発生しました。 「selectedSegmentIndex」などを早めに呼び出していました。 「viewDidLoad」が呼び出された後に私がそれを呼び出すと、すべてが再び大丈夫でした。