2017-01-30 5 views
3

L'utilisation de ce pour UIAlertViewUIAlertController comment ajouter la valeur tag obj c

- (void) alertStatus:(NSString *)msg :(NSString *)title :(int) tag 
{ 
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:title 
                 message:msg 
                 delegate:self 
               cancelButtonTitle:@"OK" 
               otherButtonTitles:nil, nil]; 
    alertView.tag = tag; 
    [alertView show]; 
} 

Mais maintenant UIAlertView se dépréciée. changer mon code

UIAlertController *alertController = [UIAlertController alertControllerWithTitle:title message:msg preferredStyle:UIAlertControllerStyleAlert]; 
    UIAlertAction* MyAlert = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil]; 
    [alertController addAction:MyAlert]; 
    [self presentViewController:alertController animated:YES completion:nil]; 

Voici comment peut transmettre cette valeur tag

alertView.tag = tag; 

Aide comment transmettre la valeur tag UIAlertController. Merci d'avance.

Répondre

4

UIAlertController est le UIViewController, nous devons donc affecter la balise à la vue, donc utiliser alertController.view.tag.

UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"sds" message:@"sdf" preferredStyle:UIAlertControllerStyleAlert]; 
alertController.view.tag = tag; 
UIAlertAction* MyAlert = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil]; 
[alertController addAction:MyAlert]; 
[self presentViewController:alertController animated:YES completion:nil]; 

mise à jour

UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"sds" message:@"sdf" preferredStyle:UIAlertControllerStyleAlert]; 
alertController.view.tag = 3; 
UIAlertAction* MyAlert = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) 
          { 
           // OK button tappped. 
           [self dismissViewControllerAnimated:YES completion:^{ 

           }]; 

          }]; 
[alertController addAction:MyAlert]; 
[self presentViewController:alertController animated:YES completion:nil]; 
+0

- (void) alertView: (UIAlertView *) alertView clickedButtonAtIndex: (NSInteger) buttonIndex cela aussi dépréciée comment résoudre tis. – saravanar

+0

@saravanar - attendez Je mets à jour la réponse –

+0

@saravanar inutile d'utiliser le délégué 'UIAlertView'. Utilisez 'UIAlertController' seulement au lieu de' UIAlertView' –

2

créer une propriété de UIAlertController *alertController;, utilisez cette alertController où vous voulez. mettre l'étiquette comme celui-ci

alertController.view.tag = <YOUR TAG VALUE>; 

pour obtenir l'étiquette de ce alertController, lorsque vous cliquez sur OUI sur alertController

//OK button tapped. 
[self dismissViewControllerAnimated:YES completion:^{ 
    NSInteger *tag = alertController.view.tag; 
}]; 
+0

Peut-on dire comment obtenir le bouton index UIAlertController pour oui et cliquez sur le bouton. – saravanar

+0

si vous avez créé une propriété de 'UIAlertController', où vous voulez obtenir l'index de ce alertController, faites comme ceci,' NSInteger * tag = alertController.view.tag; '. Si aucune balise n'est définie pour l'alerte, la valeur par défaut peut être 0. –

1

pas de propriété tag UIAlertController. Vous pouvez utiliser un bloc pour obtenir l'action du bouton.

UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Alert" 
                   message:[NSString stringWithFormat:@"Your message"] 
                 preferredStyle:UIAlertControllerStyleAlert]; 
[alert addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { 
      //NSLog(@"OK"); 
     }]]; 
[self presentViewController:alert animated:YES completion:nil]; 

Mais vous pouvez utiliser la balise dans cette Way-

alert.view.tag = 1; 
+0

Peut-on dire comment obtenir l'index des boutons UIAlertController pour oui et cliquer sur le bouton. – saravanar

+0

vous remercie. Vous économisez mon temps –