Xamarin UIAlertView按钮事件

Xamarin UIAlertView按钮事件,xamarin,xamarin.ios,xamarin.forms,uialertview,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;

我对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)
 {
     //???
 }

谢谢。

UIAleartView
没有按钮的特定事件。
但是,您可以从
UIButtonEventArgs
(例如:
e.ButtonIndex
)访问按下的按钮的索引,验证按下的按钮是什么首先,Xamarin.Forms没有
UIAlertView
类(在PCL项目内)。 您可以通过调用
页面
实例中的异步
DisplayAlert
方法在那里显示警报。例如:

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导航方法取决于推送导航方法。例如,如果您使用了
PushModalAsync(第2页)
,则必须在第2页中使用
PopModalAsync()
,否则
popsync()
将导致错误

如果您希望在特定于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);

这是Xamarin.iOS而不是Xamarin.Forms,您能解释一下这与X.F有什么关系吗?使用本机
UIAlertView
的目的是什么?我建议您使用
Acr.UserDialogs
作为
Xamarin.Forms
的共享解决方案。我使用Xamarin.Forms我有一个客户页面和客户付款页面,如果客户没有付款,则会显示UIAlertView。当我想浏览后页时,请单击“确定”按钮。您可以使用解决方案。