Partager via


Affichage des alertes dans Xamarin.iOS

À compter d’iOS 8, UIAlertController a terminé le remplacement de UIActionSheet et UIAlertView qui sont désormais déconseillés.

Contrairement aux classes qu’il a remplacées, qui sont des sous-classes d’UIView, UIAlertController est une sous-classe d’UIViewController.

Permet UIAlertControllerStyle d’indiquer le type d’alerte à afficher. Ces types d’alertes sont les suivants :

  • UIAlertControllerStyleActionSheet
    • Avant iOS 8, il s’agirait d’une feuille UIActionSheet
  • UIAlertControllerStyleAlertAlert
    • Pré-iOS 8 cela aurait été UIAlertView

Il existe trois étapes nécessaires pour créer un contrôleur d’alerte :

  • Créez et configurez l’alerte avec un :

    • title
    • message
    • preferredStyle
  • (Facultatif) Ajouter un champ de texte

  • Ajouter les actions requises

  • Présenter le contrôleur d’affichage

L’alerte la plus simple contient un bouton unique, comme illustré dans cette capture d’écran :

Alerte avec un bouton

Le code permettant d’afficher une alerte simple est le suivant :

okayButton.TouchUpInside += (sender, e) => {

    //Create Alert
    var okAlertController = UIAlertController.Create ("Title", "The message", UIAlertControllerStyle.Alert);

    //Add Action
    okAlertController.AddAction (UIAlertAction.Create ("OK", UIAlertActionStyle.Default, null));

    // Present Alert
    PresentViewController (okAlertController, true, null);
};

L’affichage d’une alerte avec plusieurs options s’effectue de manière similaire, mais ajoute deux actions. Par exemple, la capture d’écran suivante montre une alerte avec deux boutons :

Alerte avec deux boutons

okayCancelButton.TouchUpInside += ((sender, e) => {

    //Create Alert
    var okCancelAlertController = UIAlertController.Create("Alert Title", "Choose from two buttons", UIAlertControllerStyle.Alert);

    //Add Actions
    okCancelAlertController.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, alert => Console.WriteLine ("Okay was clicked")));
    okCancelAlertController.AddAction(UIAlertAction.Create("Cancel", UIAlertActionStyle.Cancel, alert => Console.WriteLine ("Cancel was clicked")));

    //Present Alert
    PresentViewController(okCancelAlertController, true, null);
});

Les alertes peuvent également afficher une feuille d’action, similaire à la capture d’écran ci-dessous :

Alerte de feuille d’action

Les boutons sont ajoutés à l’alerte avec la AddAction méthode :

actionSheetButton.TouchUpInside += ((sender, e) => {

    // Create a new Alert Controller
    UIAlertController actionSheetAlert = UIAlertController.Create("Action Sheet", "Select an item from below", UIAlertControllerStyle.ActionSheet);

    // Add Actions
    actionSheetAlert.AddAction(UIAlertAction.Create("OK",UIAlertActionStyle.Default, (action) => Console.WriteLine ("Item One pressed.")));

    actionSheetAlert.AddAction(UIAlertAction.Create("custom button 1",UIAlertActionStyle.Default, (action) => Console.WriteLine ("Item Two pressed.")));

    actionSheetAlert.AddAction(UIAlertAction.Create("Cancel",UIAlertActionStyle.Cancel, (action) => Console.WriteLine ("Cancel button pressed.")));

    // Required for iPad - You must specify a source for the Action Sheet since it is
    // displayed as a popover
    UIPopoverPresentationController presentationPopover = actionSheetAlert.PopoverPresentationController;
    if (presentationPopover!=null) {
        presentationPopover.SourceView = this.View;
        presentationPopover.PermittedArrowDirections = UIPopoverArrowDirection.Up;
    }

    // Display the alert
    this.PresentViewController(actionSheetAlert,true,null);
});