我有一个 pickerview,它从 View Controller 上的核心数据提取加载方法加载方法。一切都很好,但是我发现我经常传递空值,而且我不得不来回旋转选择器并单击几次以获取要保留的值。
如果用户不手动选择某些东西,我也会遇到问题,我需要它来传递选择器所在的值。我在同一个 View Controller 上有一个日期选择器,它可以毫无问题地传递它所在的任何日期。我可能忽略了一些东西..任何帮助将不胜感激
# pragma mark PickerView Section
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 1; // returns the number of columns to display.
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
return [profiles count]; // returns the number of rows
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
// Display the profiles we've fetched on the picker
Profiles *prof = [profiles objectAtIndex:row];
return prof.profilename;
}
//If the user chooses from the pickerview
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
selectedProfile = [[profiles objectAtIndex:row]valueForKey:@"profilename"];
}
# pragma mark Segue Section
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"resultsSegue"]) {
ResultsVC *result = segue.destinationViewController;
result.profileName = [NSString stringWithFormat:@"%@",selectedProfile];
NSDate *selectedDate = [datePicker date];
result.trialDate = selectedDate;
}
}
最佳答案
您需要将 selectedProfile
初始化为选择器中的第一个值。在 viewDidLoad
中执行此操作。这样,如果用户从未明确选择一个值,selectedProfile
将默认设置为第一个值。
关于ios - 获取行而不从 UIPickerView 选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19715544/