顯示模態警報對話方塊
通常的做法是使用 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
}