0

我试图消除的关于 PickerView 的一个烦人的事情是,如果用户必须从第零行移开并重新选择它。我希望这样,如果用户决定选择零行,他只需按下按钮即可转到下一个视图,并且将选择零行值。

有任何想法吗?

非常感谢

这是我的代码 - 目前,如果按下连接到 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);
    }
4

2 回答 2

0

尝试一下....

- (IBAction)saveSelectedCondition:(id)sender {
    myText.text = [myArray objectAtIndex:0];//Just add this line for set first value
    [self.selectedCondition setValue:@"YES" forKey:@"isSelectedCondition"];
    [self.managedObjectContext save:nil];
    NSLog(@"Saving selected condition (%@) with isSelectedCondition set to '%@'", self.selectedCondition.name, self.selectedCondition.isSelectedCondition);
}

Set first value when your picker view called.
于 2013-04-05T05:51:29.037 回答
0

我现在使用以下代码在 performFetch 之后对其进行了整理:

 [self performFetch];
    NSLog(@"The following Conditions were fetched for the Picker by SelectorViewController:");
    for (Condition *fetchedCondition in [self.fetchedResultsController fetchedObjects]) {
        if (fetchedCondition ==[[self.fetchedResultsController fetchedObjects] objectAtIndex:0])
        {[fetchedCondition setValue:@"YES" forKey:@"isSelectedCondition"];
            self.selectedCondition = fetchedCondition;}
        else
        [fetchedCondition setValue:@"NO" forKey:@"isSelectedCondition"];    
        [self.managedObjectContext save:nil];
        NSLog(@"Condition: %@, isSelectedCondition %@", fetchedCondition.name, fetchedCondition.isSelectedCondition);
    }

}
于 2013-04-05T11:50:40.900 回答