Objective C-使用其中的对象加载 UIPickerview
Posted
技术标签:
【中文标题】Objective C-使用其中的对象加载 UIPickerview【英文标题】:Objective C- Loading a UIPickerview using the objects in it 【发布时间】:2016-01-14 11:59:43 【问题描述】:我有一个选择器视图,其中包含来自 NSMutableArray 的值
NSMutableArray array=[[NSMutableArray alloc]init];
for(int t=-20 ;t<70;t++)
NSString *string=[NSString stringWithFormat:@"%d",t];
[array addObject:string];
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row
return [array objectAtIndex:row];
我从选择器中选择一个值并将其保存在数据库中。之后,当页面加载时,选择器应该加载保存的值。
我怎样才能实现它?
我已经看到通过像这样传递索引值来访问选定的行
[pickerview selectRow:20 inComponent:0 animated:NO];
但在我的情况下,是否有可能获取值的索引?或者还有其他方法吗?
请帮忙
【问题讨论】:
你能在选择器视图中显示数据吗? 是的,我可以显示数据 您可以通过这种方式获取索引:[array indexOfObject: @"your saved value from DB"]。但在选择该行之前检查索引是否不是 NSNotFound 【参考方案1】:当您的模型将发生变化时,您可以将 indexOfObject 消息发送到数组以获取索引。试试这个
NSInteger index=[array indexOfObject:@"ObjectYouHave"];
【讨论】:
试过这个 - NSNumber *num=[NSNumber numberWithInteger:[[datafromdb objectForKey@"pickervalue"]integerValue]]; NSInteger index=[数组 indexOfObject:num]; if(NSNotFound==index) NSLog(@"未找到");否则 [pickerview selectedRowInComponent:index];但它总是打印 nslog ,并且数据库具有选择器中存在的值。我哪里出错了?以上是关于Objective C-使用其中的对象加载 UIPickerview的主要内容,如果未能解决你的问题,请参考以下文章
将 NSArray 对象写入领域数据库 - Objective C
保存/加载自定义对象数组到 plist Objective C
iPhone Dev Objective-C - 对象被保留,我不知道在哪里