2012-06-18 31 views
0

你好,我有一個UISegmentedControl有兩個段。選定的段在某些情況下以編程方式進行修改,而用戶在某些情況下進行修改。我只想在用戶操作導致更改時觸發選擇器(只有當用戶實際按下分段控件時,而不是系統執行segmentedControl.selectedSegmentIndex = ...時)。任何想法?區分UIsegatedontrol值更改來自用戶還是來自系統

回答

1

如果你

[self.segment setSelectedSegmentIndex:1]; 

這不會叫的valueChanged的行動上段,所以你有什麼問題嗎?

+0

確實我誤讀了文檔 –

+0

不需要它發生的事情比你想象的要多,我不得不測試它以確保:) –

1
[segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvents: UIControlEventValueChanged]; 


- (IBAction)segmentAction:(id)sender { 
// valuechanged connected function 

     UISegmentedControl *segControll = (UISegmentedControl *)sender; 

    if (segControll.tag == 0) { 


     } 
     else { 

      isProgramaticallyChanged = NO; //important 

     } 



}