2017-11-17 5 views
0

날짜를 선택하고 레이블에 표시 할 날짜 선택 도구가 있습니다. yyyy-MM-dd 형식을 시도 중입니다. 그러나 날짜를 선택하면 날짜 선택기에서 선택한 날짜가 레이블에 표시되지 않습니다.IOS에서 작동하지 않는 날짜 형식

이 형식을 표시하려면 어떻게해야합니까? yyyy-MM-dd?

datepicker=[[UIDatePicker alloc]init]; 
datepicker.datePickerMode=UIDatePickerModeDate; 
datepicker.backgroundColor = [UIColor grayColor]; 
[datepicker setValue:[UIColor whiteColor] forKey:@"textColor"]; 

UIToolbar *toolBar=[[UIToolbar alloc]initWithFrame:CGRectMake(0, self.view.frame.size.height - 216 - 44, self.view.frame.size.width, 44)]; 
[toolBar setTintColor:[UIColor blackColor]]; 
UIBarButtonItem *doneBtn=[[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(ShowSelectedDate)]; 
UIBarButtonItem *space=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil]; 
[toolBar setItems:[NSArray arrayWithObjects:doneBtn,space,nil]]; 

[_DOB setInputView: datepicker]; 

_DOB.inputAccessoryView =toolBar; 


-(void)ShowSelectedDate { 
    NSDateFormatter *fromatter=[[NSDateFormatter alloc]init]; 
    [fromatter setDateFormat:@"yyyy-MM-dd"]; 
    self.DOB.text=[NSString stringWithFormat:@"%@",[fromatter stringFromDate:datepicker.date]]; 
    [_DOB resignFirstResponder]; 
} 

내 날짜 선택은 다음과 같습니다 :

enter image description here

+0

'ShowSelectedDate' 메소드가 호출되지 않은 것 같습니다. 메서드 내부에 중단 점을 추가하십시오. – mikezs

답변

1

당신은 날짜 선택의 UIControlEventValueChanged을 차단하기위한 조치 방법을 구현할 수

여기 내 코드입니다. 일반적으로이 날짜 선택을 관리하는 뷰 컨트롤러 클래스에 배치되어 다음과 같이

-(IBAction)dateChanged:(UIDatePicker *)inPicker { 
    // applying inPicker.date to your label 
} 

이 선택기로 액션 메소드를 추가 selfdateChanged:를 구현하는 뷰 컨트롤러이다

datepicker=[[UIDatePicker alloc]init]; 
datepicker.datePickerMode=UIDatePickerModeDate; 
[datepicker addTarget:self action:@selector(dateChanged:) forControlEvents:UIControlEventValueChanged]; 

. 당신은 또한에 대한 귀하의 ShowSelectedDate 방법을 사용할 수 있습니다 :

[datepicker addTarget:self action:@selector(ShowSelectedDate) forControlEvents:UIControlEventValueChanged]; 

참고 : ShowSelectedDate이 매개 변수를 사용하지 않기 때문에 @selector의 말에는 콜론이 없습니다.

또한 ShowSelectedDate에 매개 변수로 날짜 선택을 전달할 수 있습니다

-(void)ShowSelectedDate:(UIDatePicker *)datepicker { 
    NSDateFormatter *fromatter=[[NSDateFormatter alloc]init]; 
    [fromatter setDateFormat:@"yyyy-MM-dd"]; 
    self.DOB.text=[NSString stringWithFormat:@"%@",[fromatter stringFromDate:datepicker.date]]; 
    [_DOB resignFirstResponder]; 
} 

는 그런 다음에 액션 적용해야합니다

[datepicker addTarget:self action:@selector(ShowSelectedDate:) forControlEvents:UIControlEventValueChanged]; 

참고 추가 콜론, 방법은 지금 매개 변수를 가지고 있기 때문에 .

+0

나는 무엇을 해야할지 모르지만 내 코드는 무엇입니까? @macmoonshine – siddle

+0

내 게시물을 편집했습니다. 마지막 두 코드 블록에 따라 코드를 수정하십시오. – clemens

+0

끝내 주셔서 감사합니다. @macmoonshine – siddle

관련 문제