2013-01-07 87 views
1

我在view。對一個Button敲擊Button你得到一個datepicker默認爲今天的日期,然後用戶可以選擇他們想要搜索事件的日期。 問題是,無論我選擇什麼日期,它總是返回當前日期,並將其添加到我放入的TextField中,我已將其置於mu Button中。可以讓任何人告訴我我錯在哪裏了。以編程方式設置日期選擇器。的DatePicker不選擇正確的日期

以下是我的代碼,希望有人能幫助我!

//顯示日期選擇器,而在按鈕點擊

- (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的Iam。 這裏datePicker.date給我唯一的,即使我選擇的任何其他日期

+0

你在IB中添加datePicker嗎?如果是這樣,你確定IBOutlet鏈接正確嗎? – KDaker

+0

沒有iam編程式地添加日期選擇器 – SumiSadiq

+0

你確定它的'datePicker.date'值直接沒有'[DateFormatter getDateStringddmmyyy:labelStartDate]'? – KDaker

回答

0

我發現我的錯誤在last..The問題是我的代碼,我設置了datePicker.removing代碼中的最大值和最小值的當前日期設置最大值和最小值的代碼工作正常..

0

你需要初始化你的datepicker這樣。

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

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

併爲您的這個方法:ageChanged:

- (空)ageChanged:(ID)發送{

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

}

,並設置dateFormatter按您的要求。 ,同時更改日期,它會給你日期選擇器中選擇的日期。

我希望這會幫助你的日期選擇器。

相關問題