1

をタップすると、Buttonデフォルトで今日の日付が表示され、ユーザーはイベントを検索する日付を選択できます。問題は、選択した日付に関係なく、常に現在の日付を返し、これをmu 内に配置したものに追加することです。誰かが私が間違っている場所を教えてくれますか?プログラムで日付ピッカーを設定しています。viewButtondatepickerTextFieldButton

以下は私のコードです。誰かが私を助けてくれることを願っています!

//ボタンクリック時に日付ピッカーを表示

 - (IBAction)startDateButtonAction:(id)sender
  {
     if ([popOverController isPopoverVisible]) {
    [popOverController dismissPopoverAnimated:YES];
  }
    UIViewController* popoverContent = [[UIViewController alloc] init]; //ViewController
    UIView *popoverView1 = [[UIView alloc] init];   //view
    datePicker          =[[UIDatePicker alloc]init];//Date picker
    datePicker.frame    =CGRectMake(0,0,240, 150);
    datePicker.datePickerMode = UIDatePickerModeDate;
    [datePicker setMaximumDate:[[NSDate date] dateByAddingTimeInterval:24*60*60*-6]];
    [datePicker setMinimumDate:[DateFormatter getSubtractedDateForomCurrentDateWith:35]];
    datePicker.date     = [DateFormatter getDateFromString:startDateLabel.text];
    datePicker.selected = YES;
    [datePicker addTarget:self action:@selector(datePickerValue)       forControlEvents:UIControlEventValueChanged];
    [popoverView1 addSubview:datePicker];
    popoverContent.view = popoverView1;
    popOverController = [[UIPopoverController alloc]    initWithContentViewController:popoverContent];
    [popOverController setPopoverContentSize:CGSizeMake(240, 150) animated:NO];
    [popOverController presentPopoverFromRect:startDateButton.frame inView:headerView   permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
}

//日付ピッカーから任意の日付を選択する際のアクション関数

 - (void) datePickerValue
  {
     NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
     [offsetComponents setDay:-6]; 
     NSDate *labelStartDate = datePicker.date;
     startDate = [DateFormatter getOnlyDateComponentsFromDate:labelStartDate];
     NSDate *labelEndDate = [self addDayToDate:startDate Number:6];
     startDateLabel.text = [DateFormatter getDateStringddmmyyy:labelStartDate];
     endDateLabel.text   = [DateFormatter getDateStringddmmyyy:labelEndDate];
   }

【ここで使われている機能を含む】

//used for getting date components
+(NSDate *) getOnlyDateComponentsFromDate:(NSDate *)date
{
unsigned int flags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSCalendar* calendar = [NSCalendar currentCalendar];
NSDateComponents* components = [calendar components:flags fromDate:date];
NSDate* dateOnly = [calendar dateFromComponents:components];
return dateOnly;
}  


 - (NSDate *) addDayToDate:(NSDate *)date Number:(int) number
{
  NSDate *newDate = [date dateByAddingTimeInterval:60*60*24*number];
  return newDate;
}

ARCを使用しています。datePicker.date他の日付を選択しても、ここでは現在の日付のみが表示されます

4

2 に答える 2

0

最後に間違いを発見しました..問題は、datePicker の最大値と最小値を設定するコードにありました.最大値と最小値を設定するためのコードを削除すると、コードは正常に動作します..

于 2013-01-07T08:09:00.590 に答える
0

このように日付ピッカーを初期化する必要があります。

 _datePicker = [[UIDatePicker alloc] initWithFrame:pickerFrame];
_datePicker.tag=1951;
_datePicker.datePickerMode=UIDatePickerModeDate;

[_datePicker addTarget:self action:@selector(ageChanged:) forControlEvents:UIControlEventValueChanged];
[_actionSheet addSubview:_datePicker];

そして、あなたのこの方法のために:ageChanged:

-(void)ageChanged:(id)送信者 {

NSDate *datePicked = [_datePicker date];
NSLog(@"%@", datePicked);
formattedDate = [dateFormatter stringFromDate:datePicked];

}

必要に応じて設定dateFormatterします。日付を変更すると、日付ピッカーで選択した日付が表示されます。

これが日付ピッカーの助けになることを願っています。

于 2013-01-07T08:29:55.777 に答える