Aracılığıyla paylaş


Xamarin.iOS'ta Uyarıları Görüntüleme

iOS 8'den başlayarak, UIAlertController, UIActionSheet ve UIAlertView'ın yerini almıştır ve her ikisi de artık kullanım dışıdır.

UIView'un alt sınıfları olan değiştirdiği sınıflardan farklı olarak UIAlertController, UIViewController'ın alt sınıfıdır.

Görüntülenecek uyarı türünü belirtmek için kullanın UIAlertControllerStyle . Bu uyarı türleri şunlardır:

  • UIAlertControllerStyleActionSheet
    • iOS 8 öncesi bu bir UIActionSheet olurdu
  • UIAlertControllerStyleAlert
    • iOS 8 öncesi bu, UIAlertView olurdu

Uyarı Denetleyicisi oluştururken atılması gereken üç adım vardır:

  • Aşağıdakilerle Uyarı oluşturma ve yapılandırma:

    • Başlık
    • ileti
    • preferredStyle
  • (İsteğe bağlı) Metin alanı ekleme

  • Gerekli eylemleri ekleme

  • Görünüm Denetleyicisini Sunma

En basit uyarı, bu ekran görüntüsünde gösterildiği gibi tek bir düğme içerir:

Tek düğmeyle uyarı

Basit bir uyarı görüntüleme kodu aşağıdaki gibidir:

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

Birden çok seçenek içeren bir uyarı görüntüleme işlemi benzer şekilde yapılır, ancak iki eylem ekler. Örneğin, aşağıdaki ekran görüntüsünde iki düğmeli bir uyarı gösterilmektedir:

İki Düğmeli Uyarı

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

Uyarılar, aşağıdaki ekran görüntüsüne benzer şekilde bir eylem sayfası da görüntüleyebilir:

Eylem sayfası uyarısı

Düğmeler şu yöntemle uyarıya AddAction eklenir:

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