2 votes

Comment passer un paramètre sur un bloc d'achèvement en Objective-C ?

J'essaie de déclarer une fonction avec quelques blocs à l'intérieur, lorsque j'appelle la fonction à partir de la méthode viewdidload, ces paramètres doivent se comporter de la même manière.

-(void) alertViewOn:(UILabel*)LabelTextX :(UIButton*)ButtonA :(UIButton*)ButtonB :(UIImage*)ImageX {

UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"Enter Pet Name" message:nil preferredStyle:UIAlertControllerStyleAlert];

//Show TextField
[alert addTextFieldWithConfigurationHandler:^(UITextField *textField)
 {
     textField.placeholder = NSLocalizedString(@"Pet Name", @"Name");
 }];

//Set Ok Button
UIAlertAction* ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){

    [alert dismissViewControllerAnimated:YES completion:nil];

    UITextField *textField = alert.textFields.firstObject;
    self.labelText2.text   = textField.text;

}];
[alert addAction:ok];

//Set ADD Button
UIAlertAction* addPet = [UIAlertAction actionWithTitle:@"Add More" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){

    [alert dismissViewControllerAnimated:YES completion:nil];

    self.button4.hidden = NO;
    self.button5.hidden = NO;
    self.image2.hidden = NO;

}];
[alert addAction:addPet];

//Set Cancel Button
UIAlertAction* cancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action){

    [alert dismissViewControllerAnimated:YES completion:nil];

}];
[alert addAction:cancel];
[self presentViewController:alert animated:YES completion:nil];
}

Ici je veux passer le paramètre LabelTextX à labelText2 ; ButtonA à button4 ; ButtonY à button5 et ImageX à image2 . Je suis totalement nouveau dans Objective-C et j'ai du mal à déclarer une fonction ! !! S'il vous plaît toute personne aimable aide ....

0voto

Arafin Russell Points 330
-(void) alertViewOn:(UILabel*)LabelTextX :(UIButton*)ButtonA :   (UIButton*)ButtonB :(UIImageView*)ImageX {

UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"Enter Pet Name" message:nil preferredStyle:UIAlertControllerStyleAlert];

//Show TextField
[alert addTextFieldWithConfigurationHandler:^(UITextField *textField)
 {
     textField.placeholder = NSLocalizedString(@"Pet Name", @"Name");
 }];

//Set Ok Button
UIAlertAction* ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){

    [alert dismissViewControllerAnimated:YES completion:nil];

    UITextField *textField = alert.textFields.firstObject;
    LabelTextX.text   = textField.text;

}];

[alert addAction:ok];

//Set ADD Button
UIAlertAction* addPet = [UIAlertAction actionWithTitle:@"Add More" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){

    [alert dismissViewControllerAnimated:YES completion:nil];

    ButtonA.hidden = NO;
    ButtonB.hidden = NO;
    ImageX.hidden = NO;

}];

[alert addAction:addPet];

//Set Cancel Button
UIAlertAction* cancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action){

    [alert dismissViewControllerAnimated:YES completion:nil];

}];

[alert addAction:cancel];
[self presentViewController:alert animated:YES completion:nil];
}

Et puis j'ai appelé la fonction comme ceci ...

- (IBAction)buttonPressed15:(id)sender {
         [self alertViewOn:_labelText15 :_button30 :_button31 :_image15];
}

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