我对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)
{
//???
}
感谢。
答案 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
)验证按下了什么按钮