UIAlertView按钮事件

时间:2016-08-02 09:02:41

标签: xamarin xamarin.ios xamarin.forms uialertview

我对Xamarin.Forms有疑问,当UIAlertView按下OK时,我试图从详细页面导航回页面。但我无法做到。这是我的代码;

{
    UIAlertView alert = new UIAlertView();
    alert.Title = "Warning";
    alert.AddButton("OK");
    alert.Message = "Payment not found!";
    alert.Clicked += ButtonClicked;
    alert.Show();
    return paymentList;
 }

 private void ButtonClicked(object sender, UIButtonEventArgs e)
 {
     //???
 }

感谢。

2 个答案:

答案 0 :(得分:1)

首先,Xamarin.Forms没有UIAlertView类(在PCL项目内)。 您可以通过在DisplayAlert实例中调用异步Page方法来显示警报。例如:

public class PaymentPage
{
    ...

    async void OnNoPaymentMethodDetected(object sender, EventArgs e)
    {
        await DisplayAlert("Error", "You have no payment method registered", "Okay");
        await Navigation.PopAsync(true);
    }
    ...
}
  

注意:您的Pop导航方法取决于您的Push Navigation方法。例如,如果您使用了PushModalAsync(page2),则必须使用 page2 中的PopModalAsync()向后移动,否则PopAsync()将导致错误。

如果您希望在特定于iOS的项目中有类似的警报,则必须使用下一个代码:

var controller = UIAlertController.Create("Error", "No payment method detected", UIAlertControllerStyle.Alert);

controller.AddAction(UIAlertAction.Create("Okay", UIAlertActionStyle.Cancel, (sender) =>
{
    NavigationController.PopViewController(true);
}));

ShowDetailViewController(controller, null);

答案 1 :(得分:0)

UIAleartView没有针对按钮的特定事件。 但是,您可以访问从UIButtonEventArgs按下的按钮索引(例如:e.ButtonIndex)验证按下了什么按钮