2012-01-11 71 views
1

我有一個奇怪的問題與UISegmentedControl。 我使用的方法設置所選段索引:UISegmentedControl setSelectedSegmentIndex問題

[self.toolbarSegmentedControl setSelectedSegmentIndex:0]; 

所以,問題是 - 單擊處理:

- (IBAction)segmentedControlClick:(id)sender 

不是在模擬器調用,但在設備經過時它被稱爲這種方法。爲什麼這樣,哪裏是錯誤的,正確的行爲?

回答

1

也許您的設備上的iOS版本與您的模擬器不同。 setSelectedSegmentIndex的行爲在iOS5中發生了變化 - 具體來說,segmentChangeAction不再被稱爲結果。詳細信息請參見this other Stack Overflow question

+0

感謝您的回答和鏈接 – Stas 2012-01-11 11:58:50

6

您的處理程序正在攔截事件UIControlEventValueChanged

以編程方式更改UIControl的值時,不應指望調用此事件,因爲只有用戶交互應發送UIControl的操作。

相反,如果你願意,你可以自己調用它:

[self.toolbarSegmentedControl setSelectedSegmentIndex:0]; 
[self.toolbarSegmentedControl sendActionsForControlEvents:UIControlEventValueChanged]; 

這將做到這一點。

+0

關鍵是我不指望事件被調用!此外,不得調用該事件(例如,設置UISlider的值不會發出Value Changed事件。設置UISwitch的on不會發出Value Changed事件等),此外它是一個報告的蘋果bug ID#8372405 ! – Stas 2012-01-11 11:58:19

+0

哦,對不起......我以爲那是另一種方式...... – 2012-01-17 11:08:53

+0

即使如此 - 它爲我所需要的 - 這就是你的想法,亞伯拉罕。謝謝。 – malaki1974 2012-05-30 22:33:27