web-dev-qa-db-ja.com

iOSでボタンをクリックしたときに日付ピッカーを実装するにはどうすればよいですか?

私はiOSアプリを構築しています。ストーリーボードを使用して画面を構築しています。名前、日付、最小値、最大値などのフィールドを含むフォームを作成しました。

ボタンのクリックで日付ピッカーを実装できず、ユーザーが日付を選択すると、日付ピッカーが非表示になり、選択した日付をラベルに表示したいという問題に直面しています。

私はググったが、良いチュートリアルやライブラリを見つけることができませんでした。ピッカーに日付と日付のみを表示したい。

11
Daljeet
-(IBAction)datePickerBtnAction:(id)sender
{
    datePicker = [[UIDatePicker alloc]initWithFrame:CGRectMake(0, 0,10, 50)];
    datePicker.datePickerMode = UIDatePickerModeDate;
    datePicker.hidden = NO;
    datePicker.date = [NSDate date];
    [datePicker addTarget:self action:@selector(labelTitle:) forControlEvents:UIControlEventValueChanged];
    [self.view addSubview:datePicker];
    rightBtn = [[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(save:)];
    self.navigationItem.rightBarButtonItem = rightBtn;       
}

-(void)labelTitle:(id)sender
{
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc]init];
    dateFormat.dateStyle = NSDateFormatterMediumStyle;
    [dateFormat setDateFormat:@"MM/dd/yyyy"];
    NSString *str = [NSString stringWithFormat:@"%@",[dateFormat  stringFromDate:datePicker.date]];
    //assign text to label
    label.text=str; 
}

-(void)save:(id)sender
{
    self.navigationItem.rightBarButtonItem = nil;
    [datePicker removeFromSuperview];       
}
30
iosDev

これを試して:

- (IBAction)date:(id)sender {
    datepicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 250, 325, 300)];
    datepicker.datePickerMode = UIDatePickerModeDate;
    datepicker.hidden = NO;
    datepicker.date = [NSDate date];

    [datepicker addTarget:self
                   action:@selector(labelChange:)
         forControlEvents:UIControlEventValueChanged];
    [self.view addSubview:datepicker]; //this can set value of selected date to your label change according to your condition


       NSDateFormatter *df = [[NSDateFormatter alloc] init];
    [df setDateFormat:@"M-d-yyyy"]; // from here u can change format.. 
    _selectedDate.text = [df stringFromDate:datepicker.date];
}

- (void)labelChange:(id)sender{
    NSDateFormatter *df = [[NSDateFormatter alloc] init];
    [df setDateFormat:@"M-d-yyyy"];
    _selectedDate.text = [NSString stringWithFormat:@"%@",
                          [df stringFromDate:datepicker.date]];
    [datepicker removeFromSuperview];
}
5
Mishal Awan

これからさまざまなコントロールを使用できます

https://www.cocoacontrols.com/search?utf8=%E2%9C%93&q=datepicker

2
Jay Gajjar

非表示のテキストフィールドビューを追加し、日付ピッカーを構成します。

[self.xTextFeild setInputView:_datePicker];

次に、いつでもコードの下を呼び出します。

[self.xTextFeild becomeFirstResponder];

`

2
Chathurka