I am using picker view in my application, I am selecting the object but object is not showing on the label,
Please help me
pragma mark- PICKER_VIEW_Delegate_Methods ----------------->>>>
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 1;
}
// The number of rows of data
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
if(pickerView == countryPicker)
{
return [arrayCountry count];
}
if(pickerView == statePicker)
{
return [stateArray count];
}
else return 5;
}
// The data to return for the row and component (column) that's being passed in
- (NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
if(pickerView == countryPicker)
{
return [arrayCountry objectAtIndex:row];
}
if(pickerView == statePicker)
{
return [stateArray objectAtIndex:row];
}
return @"";
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
if(pickerView == countryPicker)
{
countryLabel.text = countryArray[row];
countryPicker.hidden = YES;
NSLog(@"statelabel %@",countryLabel.text);
}
if(pickerView == statePicker)
{
[stateLabel setText:[stateArray objectAtIndex:row]];
statePicker.hidden = YES;
}
}
- (IBAction)countryList:(id)sender
{
countryPicker.hidden = false;
[countryPicker reloadAllComponents];
}
- (IBAction)stateList:(id)sender
{
stateArray = [DictStates valueForKeyPath:countryStr];
statePicker.hidden = false;
stateTable.hidden = FALSE;
[statePicker reloadAllComponents];
}
- (void)getCountryStatesList
{
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithURL:[NSURL URLWithString:@"http://dev-demo.info.bh-in-15.webhostbox.net/dv/nationalblack/api/countrystate"] completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSLog(@"List : %@", json);
dispatch_async(dispatch_get_main_queue(), ^{
[self parseCountryStates:json];
});
}];
[dataTask resume];
}
- (void)parseCountryStates:(NSDictionary *)json
{
NSArray *listing = [json objectForKey:@"listing"];
arrayCountry = [[NSSet setWithArray:[listing valueForKey:@"country"]] allObjects];
NSArray *states;
NSMutableDictionary *tempStates = [NSMutableDictionary new];
for (NSString *countryName in arrayCountry) {
NSPredicate *predicateString = [NSPredicate predicateWithFormat:@"%K contains[cd] %@", @"country", countryName];
NSLog(@"predicate %@",predicateString);
states = [NSMutableArray arrayWithArray:[listing filteredArrayUsingPredicate:predicateString]];
[tempStates setObject:states forKey:countryName];
}
DictStates = tempStates;
}
now country is selected but now when i click on state button it creashed
i am sharing my crash log:
> -[__NSCFDictionary length]: unrecognized selector sent to instance 0x7f98c9683220
> 2016-06-13 11:30:54.912 [1745:52321] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason:
> '-[__NSCFDictionary length]: unrecognized selector sent to instance
> 0x7f98c9683220'
> *** First throw call stack:
0
A
回答
0
Replace Your method with
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
if(pickerView == countryPicker)
{
countryLabel.text = arrayCountry[row];
countryPicker.hidden = YES;
NSLog(@"statelabel %@",countryLabel.text);
}
if(pickerView == statePicker)
{
[stateLabel setText:[stateArray objectAtIndex:row]];
statePicker.hidden = YES;
}
}
Will solve your problem :)
+0
谢谢它的作品,但我有另一个问题,当我选择状态按钮它没有显示状态列表 – Abhi
+0
你有statePicker。隐藏= YES;在你的代码,所以,在按钮操作你应该隐藏到false,并重新加载选择器视图将帮助 –
+0
请修复numberOfRowsInComponent,你应该使用其他if,if,if和else, –
相关问题
- 1. 所有未选择的选项标签
- 2. 更改所选行标签颜色选择器视图SWIFT 1.2
- 3. Angularjs:获得所选对象的指数选择标签
- 4. 从选择标签
- 5. 突出显示从键盘输入选择标签选项
- 6. jquery选择器 - 选择id不等于的所有span标签
- 7. JSON2HTML - 选择标签正在JSON对象
- 8. 对HTML5标签的CSS选择器 “CONTENTEDITABLE”
- 9. 使用CSS选择器选择标签
- 10. amCharts设置图例标签选择/未选择编程
- 11. 获取所选择的选项标签的价值选择框
- 12. 选择选择显示组标签和选项选择
- 13. 选择标签的选项右对齐
- 14. Rails堆栈溢出标签选择器
- 15. 显示标签和c选择标签
- 16. 显示选择标签栏项目时的模式视图
- 17. 从滚动视图中选择图标
- 18. 标签栏图标选择的图像
- 19. 在对话框中取消选择的视图选择显示
- 20. 选择标签显示小写选项
- 21. 如何突出显示从comboBox中选择的特定标签?
- 22. 类别/标签选择器
- 23. jQuery标签选择器
- 24. 标签选择器控件
- 25. jQuery UI的日期选择器:下面对准标签发出
- 26. 当选择标签时弹出到根视图
- 27. css复选框标签选择器
- 28. UIWebView从坐标DOM选择对象
- 29. 即使设置了视图对象,选择框也未设置?
- 30. 选择标签/选项标签麻烦
我认为这种线'countryLabel.text = countryArray [行]上;'应'countryLabel.text = arrayCountry [行];' –
@ EICaptainv2 .0感谢它的作品,但我有另一个问题,当我选择状态按钮它没有显示状态列表 – Abhi