2013-04-04 37 views
0

關於我試圖消除的PickerView令人討厭的事情是,如果用戶必須移走行零並重新選擇它。我喜歡它,所以如果用戶決定選擇零行,他可以簡單地按下按鈕進入下一個視圖,並選擇行零值。UIPickerView選擇零行如果PickerView沒有觸及

有什麼想法?

非常感謝

這裏是我的代碼 - 此刻,如果連接到saveSelectedCondition按鈕被按下,而pickerView沒有移出行0,空則返回selectedCondition,而不是條件值行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

你想,如果用戶沒有觸及然後機行0被自動選中,是嗎? – Pratik 2013-04-05 04:12:40

+0

是的,這正是我想做的事情,我已經整理出來的performFetch方法 – 2013-04-05 11:45:08

+0

只要把下面一行代碼在您的viewDidLoad方法中,並嘗試 [pickerView selectRow:0 inComponent:0動畫:是]; 並讓我知道它會工作或不 – Pratik 2013-04-05 11:53:46

回答

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); 
    } 

} 
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.