Je crée une application iOS, j'utilise des storyboards pour construire les écrans et j'ai créé un formulaire qui contient des champs comme Nom, Date, min et max.
Je suis confronté à un problème qui n'est pas en mesure d'implémenter le sélecteur de date lors du clic sur le bouton et lorsque l'utilisateur sélectionne la date, masquer le sélecteur de date, je souhaite afficher la date sélectionnée dans une étiquette.
J'ai googlé mais je n'ai pas pu trouver un bon tutoriel ou une bonne bibliothèque. Je souhaite afficher uniquement les jours et la date dans le sélecteur.
-(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];
}
Essaye ça:
- (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];
}
Vous pouvez utiliser divers contrôles sous cette forme.
https://www.cocoacontrols.com/search?utf8=%E2%9C%93&q=datepicker
Ajoutez une vue de champ de texte masquée et configurez le sélecteur de date.
[self.xTextFeild setInputView:_datePicker];
Ensuite, quand vous voulez appeler le code ci-dessous.
[self.xTextFeild becomeFirstResponder];
"