2011-09-10 19 views
3

こんにちは、私はiphone/ipadプログラミングに新しいです。このプログラムは私がipadのためにやっているので、私の質問はボタンをクリックすることで、日付ピッカーが表示され、私はそれをテキストフィールドに格納するか、日付ピッカーの代わりにカレンダーを挿入する方が良いですか?もしそうなら、通常のカレンダーを追加してコード化するにはどうすればいいですか?ボタンをクリックすると日付ピッカーが表示されます。

nibファイルではどのような変更が必要ですか?テキストフィールドに日付が表示されますか? UITextFieldがありますか?

答えて

13

UIDatePickerを表示するために呼び出すボタンのIBActionを作成します。次に、UIDatePickerデリゲートメソッドを実装し、ラベルのテキストを設定します。あなたのヘッダファイルに

-(IBAction)showDatePicker:(id)sender; 

あなたの実装ファイルで

-(IBAction)showDatePicker:(id)sender 
    { 

    UIDatePicker* picker = [[UIDatePicker alloc] init]; 
         picker.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
         picker.datePickerMode = UIDatePickerModeDate; 

[picker addTarget:self action:@selector(dueDateChanged:) forControlEvents:UIControlEventValueChanged]; 
         CGSize pickerSize = [picker sizeThatFits:CGSizeZero]; 
         picker.frame = CGRectMake(0.0, 250, pickerSize.width, 460); 
         picker.backgroundColor = [UIColor blackColor]; 
         [self.view addSubview:picker]; 
         [picker release]; 


    } 

-(void) dueDateChanged:(UIDatePicker *)sender { 
    NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
    [dateFormatter setDateStyle:NSDateFormatterLongStyle]; 
    [dateFormatter setTimeStyle:NSDateFormatterNoStyle]; 

    //self.myLabel.text = [dateFormatter stringFromDate:[dueDatePickerView date]]; 
    NSLog(@"Picked the date %@", [dateFormatter stringFromDate:[sender date]]); 
} 

//後で、ちょうどそれを削除するremoveFromSuperViewを呼び出すために必要がある場合。

+0

このメソッドを呼び出すには、私は、通常のカレンダーの代わりに、日付ピッカーを使用することができ、私はボタンを押したときにポップ/日付ピッカーをカレンダ加工したい、コードで私を助けることができます。 – raptor85

+0

Apple SDKの一部としてカレンダーコントロールがありません。しかしkalと呼ばれるカレンダーの素晴らしい無料版がありますhttp://klazuka.tumblr.com/post/315035813/kal-a-calendar-component-for-the-iphone – cdasher

+0

答えを正しいとマークすることを忘れないでくださいそれはあなたが探していたものです。私は今日あなたがSOに参加したことを知りました:) – cdasher

1
In .h file just Create 

UIDatePicker *datePicker; 

After that .m file 

// For Date 
datePicker = [[UIDatePicker alloc]init]; 
datePicker.datePickerMode = UIDatePickerModeDate; 
[_closingDateTxtFld setInputView:datePicker]; 
UIToolbar *toolBar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)]; 
[toolBar setTintColor:[UIColor grayColor]]; 
UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(ShowSelectedDate)]; 
UIBarButtonItem *space = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 
[toolBar setItems:[NSArray arrayWithObjects:space,doneBtn, nil]]; 

[_closingDateTxtFld setInputAccessoryView:toolBar]; 

だけ

-(void)ShowSelectedDate 
{ 
    NSDateFormatter *formatter=[[NSDateFormatter alloc]init]; 
    [formatter setDateFormat:@"YYYY-M-dd"]; 
    if ([_closingDateTxtFld isFirstResponder]) 
    { 
    _closingDateTxtFld.text=[NSString stringWithFormat:@"%@",  [formatter stringFromDate:datePicker.date]]; 
    [_closingDateTxtFld resignFirstResponder]; 
    } 
} 
関連する問題