2017-11-17 16 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を遮断するアクションメソッドを実装することができます。通常、これは、日付ピッカーを管理View Controllerクラスに配置され、以下のよう

-(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

投稿を編集しました。最後の2つのコードブロックに従ってコードを修正してみてください。 – clemens

+0

仲間に感謝しました。 @macmoonshine – siddle

関連する問題