显示模态警报对话框
通常的做法是使用 NSRunLoop
来显示模态 UIAlertView
以阻止代码执行,直到在 iOS 中处理用户输入为止; 直到 Apple 发布 iOS7,它打破了现有的几个应用程序。幸运的是,有一种更好的方法可以使用 C#的 async / await 来实现它。
这是利用 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"); //process the result
}