2011-12-09 2 views
1

두 개의 UIPickerView가 있습니다. 첫 번째 세계 coutries가 포함되어 있습니다. 사용자가 국가를 선택하면 웹 서비스에 접속하여 해당 국가의 도시를 검색합니다. 모든 것은 나를 위해 잘 작동하지만 내가 처음으로 국가를 선택할 때만. 그러나 내가 두 번째로 그 나라를 선택하면, 처음으로 전시 한 동일한 도시가 있습니다. 이것은 내 코드입니다. UIPickerView의 내용이 chnage가 될 수없는 것처럼 보입니다.다른 UIPickerView의 선택에 따라 UIPickerView의 내용

- (NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 
{ 
    NSString *codeCity; 
    codeCity=[countriesArray objectAtIndex:row]; 

    if([pickerView tag] == 1) 
    { 
     NSString *codeCity; 
    codeCity=[countriesArray objectAtIndex:row]; 

     return [countriesArray objectAtIndex:row]; 
    } 
    else 

    return [citiesArray objectAtIndex:row]; 
} 

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

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component 
{ 
    if([pickerView tag] == 1) 
     return [countriesCodeArray count]; 
    else 
     return [citiesArray count]; 

} 

- (void)onLocationSelection { 

    NSInteger row = [self.countrys selectedRowInComponent:0]; 
    if(([countriesArray count])!=0) 
    { 
     if ([countryField isFirstResponder]) 
     { 

      choosedCodeCity=[countriesCodeArray objectAtIndex:row]; 
      choosedNameCity=[countriesArray objectAtIndex:row]; 
      countryField.text = choosedNameCity; 
      [countryField resignFirstResponder]; 
      [self getCities]; 
      NSLog(@"get cities() %@",choosedCodeCity); 
     } 

-(void)getCities 
{ 
    NSString * myURLString = [NSString stringWithFormat:@"http://localhost:8080/Data/resources/converter.city/CountryCode/%@",choosedCodeCity]; 

    NSURL *url =[NSURL URLWithString:myURLString]; 
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
    [request setDelegate:self]; 
    request.didFinishSelector = @selector(resultCities:); 
    request.didFailSelector = @selector(resultCitiesError:); 

    [request startAsynchronous]; 


} 


-(void)resultCities :(ASIHTTPRequest *)request 
{ 
    [citiesArray release]; 
    citiesArray= [[NSMutableArray alloc] init]; 

    NSString *responseString = [request responseString]; 
    NSDictionary *json = [responseString JSONValue]; 
    // NSLog(@"%@",json); 

    for (int i=0; i<[json count]; i++) 
    { 



      [citiesArray addObject:[[json objectAtIndex:i] objectForKey:@"name"]]; 



    NSLog(@"cities on citiesArray %@ ", citiesArray); 

     } 
    } 

마다 resultCities 나에게 새로운 선택한 국가의 새로운 도시 공연에 내가 ..., NSLog citiesArray에 @ "도시 군을 변경, 그래서 문제가

+1

당신은 내가 그것을 다시로드? – Aravindhan

+1

@Trisha pickerview를 다시로드 [pickerView이 reloadAllComponents] resultCities에, 그것은 잘 작동, 감사합니다 – user567

+0

을 내가 추가 한? – user567

답변

0

풋이없는 - (무효) onLocationSelection { } 코드를 다시.

관련 문제