2 votes

Définir le texte de l'UIButton à la date

J'ai un UIButton qui, lorsqu'il est cliqué, fait apparaître un UIDatePicker qui définit sa date.

Tout est en place avec l'animation en entrée et en sortie, etc.

Ce pour quoi j'ai besoin d'aide :

Définir l'étiquette de texte du bouton à la date du jour par défaut. Puis, une fois le sélecteur de date UIDatePicker désactivé, il est également réglé sur la nouvelle date sélectionnée.

 - (IBAction)dateButtonPressed
{
    [dateView setFrame:CGRectMake(0, self.view.frame.size.height, self.view.frame.size.width, self.view.frame.size.height)];
    [self.view addSubview:dateView];

    [UIView animateWithDuration:.5 animations:^{
        [dateView setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
    }];
}

- (IBAction)dismssPicker
{
    [dateView setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];

    [UIView animateWithDuration:.5 animations:^{
        [dateView setFrame:CGRectMake(0, self.view.frame.size.height, self.view.frame.size.width, self.view.frame.size.height)];
    } completion:^(BOOL finished){ [dateView removeFromSuperview]; }];
}

1voto

reflog Points 4994

Vous voulez probablement quelque chose comme :

[button setTitle:[[NSDate date] descriptionWithCalendarFormat:@"%Y-%m-%d"
                                    timezone:nil
                                      locale:nil] forState:UIControlStateNormal];

1voto

Inder Kumar Rathore Points 13538
- (void)setTitle:(NSString *)title forState:(UIControlState)state

pour modifier le texte du bouton.

comme

[button setTitle:[date description] forState:UIControlStateNormal]

0voto

Inder Kumar Rathore Points 13538

Tout d'abord, modifiez votre méthode comme suit. (Je suppose que vous avez connecté cette méthode à UIDatePicker).

 -(IBAction)dismssPicker:(UIDatePicker*)datePicker
{

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    NSDate *date = datePicker.date;
    [dateFormatter setDateFormat:@"MMM dd, yyyy"]; 
    NSString *dateString = [dateFormatter stringFromDate:date]; 
//set it now

    [dateView setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];

    [UIView animateWithDuration:.5 animations:^{
        [dateView setFrame:CGRectMake(0, self.view.frame.size.height, self.view.frame.size.width, self.view.frame.size.height)];
    } completion:^(BOOL finished){ [dateView removeFromSuperview]; }];
}

Pour votre prochain problème, faites comme NSDate *prvDate; dans votre fichier .h

-(IBAction)changeDate:(id)sender{
    prvDate = yourCurrentDate;  //save your previous date 
    yourCurrentDate = datePicker.date;
//set the button's label here
}

 -(IBAction)cancel:(id)sender{
    yourCurrentDate = prvDate;
//set the button's label here
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X