2012-10-12 12 views
5

मेरा ऐप एक मल्टीकंपोनेंट पिकर व्हील के साथ कनवर्टर है। यह कुछ चर बदलने के लिए बनाया गया है। जो संख्या आप देख सकते हैं वह सिर्फ परीक्षण के लिए है, वास्तव में कुछ भी महत्वपूर्ण नहीं है।UIPickerView गलत शीर्षक दिखाता है

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    _convertFrom = @[@"One (1)", @"Two (2)", 
    @"Three (3)", @"Four (4)", @"Five (5)"]; 

    _convertRates = @[ @1.0f, @2.0f, @3.0f, 
    @4.0f, @5.0f]; 

    _convertTo = @[@"One (1)", @"Two (2)", 
    @"Three (3)", @"Four (4)", @"Five (5)"]; 

_convertRates = @[ @1.0f, @2.0f, @3.0f, 
@4.0f, @5.0f]; 

} 

मुझे आईओएस 6 सिम्युलेटर में ऐप का परीक्षण करते समय प्रदर्शित होने वाली संख्याओं के साथ एक छोटी सी समस्या है। आप यहाँ देख सकते हैं:

Screenshot

http://imgur.com/q4uxm

जब मैं डाउन सूची में, संख्या परिवर्तन जाने की कोशिश। लेकिन उनका मूल्य नहीं है। किसी समय यह बाहर की जाँच और शायद एक समाधान यह बहुत मददगार होगा :)

यहाँ कोड के बाकी कि इस मामले में महत्वपूर्ण हो सकता है खोजने के लिए मिल गया है, तो:

#pragma mark - 
#pragma mark PickerView DataSource 

- (NSInteger)numberOfComponentsInPickerView: 
(UIPickerView *)pickerView 
{ 
return 2; 
} 

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent: (NSInteger)component 
{ 
if (component == 0) { 
    return [_convertFrom count]; 
} 
return [_convertTo count]; 
} 


- (NSString *) pickerView: (UIPickerView *)pickerView 
      titleForRow:(NSInteger)row 
     forComponent:(NSInteger)component 
{ 
if (component == 0) { 
    return [_convertFrom objectAtIndex:[pickerView selectedRowInComponent:0]]; 
} 
return [_convertTo objectAtIndex:[pickerView selectedRowInComponent:1]]; 
} 




#pragma mark - 
#pragma mark PickerView Delegate 
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row 
    inComponent:(NSInteger)component 
{ 
    float convertFrom = [[_convertRates objectAtIndex:[pickerView selectedRowInComponent:0]] floatValue]; 
float convertTo = [[_convertRates objectAtIndex:[pickerView selectedRowInComponent:1]] floatValue]; 
float input = [dollarText.text floatValue]; 
float to = convertTo; 
float from = convertFrom; 
float dollars = input; 
float result = to * from * dollars; 
float mtpaTilMtpaFloat = dollars * 1; 
NSString *resultString = [[NSString alloc] initWithFormat: 
          @"result = %.2f * %.2f = %.2f", from, to, result]; 
resultLabel.text = resultString; 

NSString *mtpaTilmtpa = [[NSString alloc ] initWithFormat: 
          @" %.2f MTPA = %.2f MTPA", dollars, mtpaTilMtpaFloat]; 



if (from == 1, to == 1) { resultLabel.text = mtpaTilmtpa; 
} 

और बेशक, मुझे बताएं कि मुझे कोड का अधिक प्रदर्शन करने की आवश्यकता है ताकि आप इसे समझ सकें। यह मेरी पहली बार इस वेबसाइट का उपयोग कर बीटीडब्ल्यू :)

उत्तर

3

selectedRowInComponent का उपयोग न करें। आप अपनी सभी पंक्तियों में चुने गए मान को प्रदर्शित नहीं करना चाहते हैं। बस row

- (NSString *) pickerView: (UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 
{ 
    if (component == 0) { 
     return [_convertFrom objectAtIndex:row]; 
    } 
    return [_convertTo objectAtIndex:row]; 
} 
का उपयोग करें
संबंधित मुद्दे