2011-03-11 32 views

cevap

77

selectedSegmentIndex özelliği, UISegmentedControl'ün seçilen segmentini tanımlar. Geçerli seçimi kapatmak için bu özelliği geçerli herhangi bir segment dizinine veya UISegmentedControlNoSegment (-1) olarak ayarlayın.

// select the first segment 
segmented.selectedSegmentIndex = 0; 

// turn off the current selection 
segmented.selectedSegmentIndex = UISegmentedControlNoSegment; 
+24

kullanıcı olsa da farklı bir segment seçer. – jmstone617

22

@jmstone tepkisi, gerçek, bu işlem bu denetim için valueChanged olayını çağırmak olmaz.

segmentedControl.selectedSegmentIndex = 3; 
[self valueChangedMethod:segmentedControl]; 

Bu arayacak:

- (void)valueChangedMethod:(UISegmentedControl *)segmentedControl 
{ 
    //continue your code here... 
} 
+0

Bu sorunumu çözdü - teşekkürler! – Tander

64

Alternatif olarak, selectedSegmentIndex çağrısının değişti sonra 'sendActionsForControlEvents:' Örneğin bu aşmak için

bir yolu sadece fonksiyonu kendini aramaktır

segmentedControl.selectedSegmentIndex = 0 

[segmentedControl sendActionsForControlEvents:UIControlEventValueChanged]; 
+1

Bir çekicilik gibi çalışın Teşekkürler – vampirewalk

+5

"SendActionsForControlEvents" olmadan, yalnızca segmenti değiştirir, ancak tetikleyici olayı belirtmez. Swift'de 'segmentedControl.sendActionsForControlEvents '(UIControlEvents.ValueChanged)' Çok teşekkürler. – Steve

+0

En uygun cevap. Aslında bu işaretlenmelidir. –

2

Bölünmüş denetimin nerede olduğu benzer bir sorun yaşadım değişmiyor. "selectedSegmentIndex", vb. Için çok erken çağrı yapıyordum. Bir kez "viewDidLoad" çağrıldıktan sonra onu aradım sonra her şey iyiydi. Swift ise

13

:

segmentedControl.selectedSegmentIndex = 1 

Swift 2:

segmentedControl.sendActionsForControlEvents(UIControlEvents.ValueChanged) 

Swift 3:

Bu aslında zaman için kurdunuz ne olursa olsun hedef/eylem tetiklemez
segmentedControl.sendActions(for: UIControlEvents.valueChanged) 
+3

Swift 3 varyasyonu, "segmentedControl.sendActions (için: .valueChanged)' olarak basitleştirilebilir. –

İlgili konular