2014-02-27 31 views
0

選擇時,我能夠在選取器視圖中獲取數據。但是我的要求是,當我從picker視圖中選擇Data時,我想獲得標籤中特定數據的Id。下面是下面的代碼:當選擇選取器視圖數據時,我想在標籤中獲取ID

if ([response statusCode] >= 200 && [response statusCode] < 300) 
    { 
     NSString *responseData = [NSJSONSerialization JSONObjectWithData:urlData 
                   options:NSJSONReadingAllowFragments error:&error]; 

     NSArray *entries = [NSJSONSerialization JSONObjectWithData:[responseData dataUsingEncoding:NSUTF8StringEncoding] 
                  options:0 error:&error]; 
     if(!entries) 
     { 
      NSLog(@"Error : %@", error); 
     } 
     else{ 

     for (NSDictionary *entry in entries) { 
      projID = [entries valueForKey:@"ID_PROJECT"]; 
      projectNames = [entries valueForKey:@"NM_PROJECT"]; 
     } 
      NSLog(@"projID : %@", projID); 
      _projectpicker.delegate = self; 
      _projectpicker.dataSource = self; 
     } 

    }  else { 

    } 

PROJID:(1, 2, 3, 4,)

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 
{ 
    NSString *myArrayString = [projID description]; 
    lblProjects.text = myArrayString; 
    lblTasks.text = [taskNames objectAtIndex:[pickerView selectedRowInComponent:1]]; 
    lblSubTasks.text = [subtaskNames objectAtIndex:[pickerView selectedRowInComponent:2]]; 

} 

我的問題是我要加載的ProIdlblProjects.text

由於提前 基蘭·庫馬爾

+0

你爲什麼不使用'entries [row]'? – Wain

+0

我對這個IOS很新,所以我不知道該怎麼做 –

+0

什麼是'projID','taskNames','subtaskNames'? – Wain

回答

0

只是存儲entries。作爲一個數組,它爲拾取器提供了一個易於索引的內容列表,並且它包含的字典可以用來填充拾取器行。當選擇REO,您可以使用完全相同的內容:

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 
{ 
    NSDictionary *rowDict = entries[row]; 

    lblProjects.text = rowDict[@"ID_PROJECT"]; 
    lblTasks.text = [taskNames objectAtIndex:[pickerView selectedRowInComponent:1]]; 
    lblSubTasks.text = [subtaskNames objectAtIndex:[pickerView selectedRowInComponent:2]]; 
} 

它目前尚不清楚,所有在選擇器中顯示的數據是從哪裏來的,而是直接使用entries陣列應該解決了一批潛在的問題。

+0

感謝您的快速響應Wain但我在選取器視圖中有3個組件,其他項目是Projects,任務和子任務將在viewDidload方法本身中加載。那麼你有其他建議嗎? –

+0

顯示如何設置選擇器行(可能是'pickerView:titleForRow:forComponent:')。到目前爲止,我並不清楚你的問題是基於描述的。你說你有一個數組'projID',你是否需要'projID [row]'來得到它的字符串? – Wain

+0

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { NSNumber * myProjectArrayString = [projID objectAtIndex:row]; // NSNumber * myTaskArrayString = [taskID objectAtIndex:row]; // NSLog(@「%@」,myArrayString); // NSLog(@「%@」,myTaskArrayString); lblProjects.text = [NSString stringWithFormat:@「%@」,myProjectArrayString]; //lblProjects.hidden = YES; lblTask​​s.text = [taskNames objectAtIndex:[pickerView selectedRowInComponent:1]]; //lblTask​​s.text = [NSString stringWithFormat:@「%@」,myTaskArrayString]; } –

相關問題