web-dev-qa-db-fra.com

comment implémenter le sélecteur de date sur le clic de bouton dans iOS?

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.

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

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];
}
5
Mishal Awan

Vous pouvez utiliser divers contrôles sous cette forme.

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

2
Jay Gajjar

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];

"

2
Chathurka