2010-08-23 9 views
5

तो, मैं के साथ एक UISegmentedControl है:UISegmentedControl UIControlEventValueChanged पर अपनी कार्रवाई पर वापस क्या करता है?

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

बस कैसे मैं क्या खंड चयनित किया गया है पता लगाना होगा सोच (तो मैं उचित कार्रवाई कर सकते हैं)। मुझे इसकी तरह कुछ पता है:

@selector(myAction:) लेकिन क्या भेजा जाता है? यानी: जब मैं अपनी विधि को परिभाषित करता हूं तो मुझे क्या परिभाषित करना होगा?

धन्यवाद।

उत्तर

10

चयनित आइटम ... प्रश्न के दूसरे भाग

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

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

आह शानदार ... मेरी समस्या यह थी कि मैं कोशिश कर रहा था: 'int चयनित इंडेक्स = [प्रेषक चयनित सेगमेंट इंडेक्स];' और इसे किसी ऑब्जेक्ट में नहीं जोड़ना। :) शानदार, बहुत बहुत धन्यवाद। –

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

चयनकर्ता एक UISegmentedControl ऑब्जेक्ट है। इस प्रकार आप दो UISegmentedControl के भिन्न हो सकते हैं यदि आप दोनों को एक क्रिया बाध्य करते हैं।

+0

सही प्रतिभाशाली, इसलिए - तय करने के बारे में खेद होने के लिए मोटी हा, लेकिन क्या जो विशेष खंड का चयन किया गया था (विशेष रूप से मेरे पास क्षणिक है: हाँ)? धन्यवाद –

2

वहाँ भी आसान तरीका है मिलती है:

-(IBAction) myAction:(UISegmentedControl*)control { 
    NSLog(@"selected index %d", control.selectedSegmentIndex); 
} 
संबंधित मुद्दे