2010-08-23 6 views
5

Tak, mam UISegmentedControl z:Co przywraca UISegmentedControl do swojej akcji na UIControlEventValueChanged?

[control addTarget:self action:@selector(myAction) forControlEvents:UIControlEventValueChanged];

prostu zastanawiasz się, w jaki sposób mogę się dowiedzieć, co segment został wybrany (tak mogę zrobić odpowiednie działania). Wiem, że coś takiego:

@selector(myAction:), ale co zostanie wysłane? tj .: kiedy definiuję swoją metodę, co muszę zdefiniować?

Dziękuję.

Odpowiedz

10

dostać wybrany element ... drugą część pytania

-(IBAction) myAction:(id)sender{ 
    NSLog(@"myAction",nil); 

    UISegmentedControl * control = sender; 
    int selectedIndex = [control selectedSegmentIndex]; 
} 
+0

ah genialny ... mój problem był, że próbowałem: 'int selectedIndex = [sender selectedSegmentIndex];' i nie dodając go do obiektu. :) Świetnie, dziękuję bardzo. –

2
- (IBAction)myAction:(id)selector; 

selektor jest obiektem UISegmentedControl. W ten sposób możesz różnić się dwoma UISegmentedControl, jeśli wiążisz jedną akcję z obiema.

+0

prawo genialny, tak - przepraszam za gruby ha, ale co o podejmowaniu decyzji, które Wybrano konkretny segment (zwłaszcza, że ​​mam chwilowe: TAK)? dzięki –

2

Jest też łatwiejszy sposób:

-(IBAction) myAction:(UISegmentedControl*)control { 
    NSLog(@"selected index %d", control.selectedSegmentIndex); 
} 
Powiązane problemy