Вот как вы можете сделать свой UIAlertView модальным:
Чтобы сделать это, вы можете запустить основной цикл вручную. Мне не удалось остановить основной цикл напрямую, поэтому я вместо этого запускаю основной цикл на 0,5 секунды и жду, пока пользователь ответит.
Следующая функция показывает, как можно реализовать модальный запрос с помощью вышеуказанного подхода:
int WaitForClick ()
{
int clicked = -1;
var x = new UIAlertView ("Title", "Message", null, "Cancel", "OK", "Perhaps");
x.Show ();
bool done = false;
x.Clicked += (sender, buttonArgs) => {
Console.WriteLine ("User clicked on {0}", buttonArgs.ButtonIndex);
clicked = buttonArgs.ButtonIndex;
};
while (clicked == -1){
NSRunLoop.Current.RunUntil (NSDate.FromTimeIntervalSinceNow (0.5));
Console.WriteLine ("Waiting for another 0.5 seconds");
}
Console.WriteLine ("The user clicked {0}", clicked);
return clicked;
}