1
我有兩個UIPickerView。第一個包含世界國家。當用戶選擇一個國家時,我會聯繫一個網絡服務來檢索這個國家的城市。所有的工作都適合我,但只有當我第一次選擇這個國家的時候。但是當我第二次選擇這個國家時,第一次展示的城市就在那裏。這是我的代碼。它看起來像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);
}
}
我每次更改縣的NSLog上citiesArray @「的城市......在resultCities告訴我新選定國家的新城市,所以這個問題是不存在的
你在哪裏重裝pickerview? – Aravindhan
@Trisha我必須重新加載它? – user567
我加入[pickerView reloadAllComponents]在resultCities,它做工精細,謝謝 – user567