Xamarin.iOS 显示模式警报对话框

示例

在iOS上处理用户输入之前,通常使用NSRunLoop显示模式UIAlertView来阻止代码执行。在苹果发布iOS7之前,它中断了很少的现有应用程序。幸运的是,有一种更好的方法通过C#的async / await实现它。

这是利用异步/等待模式来显示模式UIAlertView的新代码:

Task ShowModalAletViewAsync (string title, string message, params string[] buttons)
{
    var alertView = new UIAlertView (title, message, null, null, buttons);
   alertView.Show();
    var tsc = new TaskCompletionSource ();

   alertView.Clicked+= (sender, buttonArgs) => {
       Console.WriteLine("User clicked on {0}", buttonArgs.ButtonIndex);
        tsc.TrySetResult(buttonArgs.ButtonIndex);
    };
    return tsc.Task;
}

//Usage
async Task PromptUser() {
    var result = await ShowModalAletViewAsync 
               ("Alert", "Do you want to continue?", "Yes", "No"); //处理结果
}