0

ビューコントローラーのコアデータフェッチからロードするピッカービューがロードメソッドを実行しました。すべてがうまく機能しますが、null 値を頻繁に渡していることがわかりました。保持する値を取得するには、ピッカーを前後に回転させて数回クリックする必要があります。

ユーザーが手動で何かを選択しない場合にも問題があります。ピッカーがオンになっている値を渡す必要があります。同じビューコントローラーに日付ピッカーがあり、問題なく座っている日付を渡します。私はおそらく何かを見落としています..どんな助けもいただければ幸いです

# 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;

    }
}
4

1 に答える 1

1

selectedProfileピッカーで最初の値に初期化する必要があります。でこれを行いviewDidLoadます。このようにして、ユーザーが明示的に値を選択しない場合、selectedProfileデフォルトで最初の値に設定されます。

于 2013-10-31T20:11:53.057 に答える