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