【发布时间】:2013-04-04 15:43:18
【问题描述】:
我试图消除的关于 PickerView 的一个烦人的事情是,如果用户必须从第 0 行移开并重新打开以选择它。我希望这样,如果用户决定选择第 0 行,他只需按下按钮即可转到下一个视图,并且将选择第 0 行值。
有什么想法吗?
非常感谢
这是我的代码 - 目前,如果连接到 saveSelectedCondition 的按钮被按下,并且 pickerView 没有移出第 0 行,则为 selectedCondition 返回 null,而不是第 0 行的条件值:
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
Condition *condition = [[self.fetchedResultsController fetchedObjects] objectAtIndex:row];
self.selectedCondition = condition;
NSLog(@"The '%@' condition was selected using the picker", self.selectedCondition.name);
}
- (IBAction)saveSelectedCondition:(id)sender {
[self.selectedCondition setValue:@"YES" forKey:@"isSelectedCondition"];
[self.managedObjectContext save:nil];
NSLog(@"Saving selected condition (%@) with isSelectedCondition set to '%@'", self.selectedCondition.name, self.selectedCondition.isSelectedCondition);
}
【问题讨论】:
-
如果用户没有触摸选择器,那么您希望自动选择第 0 行,对吗?
-
是的,这正是我想做的,我已经在 performFetch 方法中进行了整理
-
只需在您的 ViewDidLoad 方法中放入单行代码并尝试 [pickerView selectRow:0 inComponent:0 animated:YES];让我知道它是否有效
-
这里的pickerView是你的pickerview的对象
-
@Pratik - 感谢您的建议 - 它没有用。但是,我通过设置 PickerView didSelect 打算选择的 Condition 实例来管理解决方法,即 selectedCondition,属性 isSelectedCondition 的键为 YES,用于从 performFetch 出现的索引为零的条件,即 pickerView 中的第 0 行。请参阅下面的我的自我回答。
标签: xcode uipickerview