содержимое UIPickerView в зависимости от выбора другого UIPickerView - PullRequest
1 голос
/ 09 декабря 2011

У меня есть два 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);

        }
    }

каждый раз, когда я меняю округ, NSLog @ "города в городах Array ... по результату Города показывают мне новые города новой выбранной страны, поэтому проблема не существует

1 Ответ

0 голосов
/ 10 января 2012

put - (void) код onLocationSelection {} снова.

...