是否可以在可能的情况下重复使用UIAlertView的实例?
或者将它们包装在使用块中是最佳做法吗?
这些情况中的任何一种都需要采用不同的方法吗?
答案 0 :(得分:2)
我不认为在使用块中执行此操作有任何问题 - 您可能希望抽象出处理程序,以便您不会在执行相同操作的地方都有警报框委托。
然后,LoadingHUDView再次成为需要为更高级的东西编写功能的一个很好的例子......
但是无论哪种方式 - 如果你重复使用同一个对象但每次都要改变它 - 那里就没有多少东西可以获得IMO
答案 1 :(得分:2)
以下是制作UIAlertView模式的方法:
要做到这一点,你可以做的是手动运行mainloop。我没有设法直接停止主循环,所以我改为运行主循环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;
}