Freigeben über


Anzeigen von Benachrichtigungen in Xamarin.iOS

Ab iOS 8 wurde UIAlertController durch UIActionSheet und UIAlertView ersetzt, die jetzt veraltet sind.

Im Gegensatz zu den ersetzten Klassen, die Unterklassen von UIView sind, ist UIAlertController eine Unterklasse von UIViewController.

Wird verwendet UIAlertControllerStyle , um den Typ der anzuzeigenden Warnung anzugeben. Diese Warnungstypen sind:

  • UIAlertControllerStyleActionSheet
    • Pre-iOS 8 wäre dies ein UIActionSheet
  • UIAlertControllerStyleAlert
    • Pre-iOS 8 wäre dies UIAlertView gewesen

Es gibt drei erforderliche Schritte zum Erstellen eines Warnungscontrollers:

  • Erstellen und Konfigurieren der Warnung mit einer:

    • title
    • message
    • preferredStyle
  • (Optional) Hinzufügen eines Textfelds

  • Hinzufügen der erforderlichen Aktionen

  • Präsentieren des Ansichtscontrollers

Die einfachste Warnung enthält eine einzelne Schaltfläche, wie in diesem Screenshot gezeigt:

Warnung mit einer Schaltfläche

Der Code zum Anzeigen einer einfachen Warnung lautet wie folgt:

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);
};

Das Anzeigen einer Warnung mit mehreren Optionen erfolgt in ähnlicher Weise, aber es werden zwei Aktionen hinzugefügt. Der folgende Screenshot zeigt beispielsweise eine Warnung mit zwei Schaltflächen:

Warnung mit zwei Schaltflächen

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);
});

Warnungen können auch ein Aktionsblatt anzeigen, ähnlich dem folgenden Screenshot:

Aktionsblattbenachrichtigung

Schaltflächen werden der Warnung mit der AddAction Methode hinzugefügt:

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);
});