在用 MonoTouch C# 编写的 iOS 应用程序的初始屏幕中,我调用了许多 Web 服务,然后这些服务调用另一个 Web 服务,直到收集到我需要的所有数据以供应用程序运行。我正在异步执行此操作,以便可以向用户显示活动指示器。
但是我觉得代码很乱,所有这些调用和回调都在 ViewController 中。我想要一种分离方法,以便 ViewController 只关心返回的结果,但我需要一种方法让 ViewController 停止,直到调用完成。
目前,我的代码看起来有点像这样:
protected void FirstServiceCompleted(object sender, FirstServiceCompletedEventArgs e)
{
// Do something
_servicesHelper.GetSecondService(GetSecondServiceCompleted);
}
protected void SecondServiceCompleted(object sender, SeconServiceCompletedEventArgs e)
{
// Do something else
_servicesHelper.GetThirdService(GetThirdServiceCompleted);
}
... etc
如果有一种方法可以让我的 ViewController 通过另一个对象从事件 args 中检索数据,而在幕后使用这段代码,那就太好了。在所有这些调用结束时,我切换到一个新视图以显示填充了这些数据的主主屏幕。但是我的 ViewController 看起来很臃肿,并且有很多这样的重复调用。
任何帮助或建议将不胜感激。