如何使用MBProgressHUD链接多个动作?

时间:2012-07-10 13:55:50

标签: iphone mbprogresshud

基本上我有3个步骤:

  1. 我需要准备要发送到服务器的数据。这需要一些时间。
  2. 准备好数据后,我必须将其发送到服务器 - 这也需要一段时间。
  3. 我等待服务器的响应,一切正常。
  4. 我正在考虑为每个动作使用MBProgressHUD - 我显示hud,并使用showWhileExecuting方法。然后,当我隐藏在该代码中的hud时,我调用下一个动作,并再次显示hud。

    从理论上说这应该有效,但这应该是这样做的吗?

2 个答案:

答案 0 :(得分:2)

不依赖于MBProgressHUD会更好。您应该将它用作用户的反馈元素,而不是作为操作管理器。

例如,您可以使用NSOperationQueue,只需通知hud在每次迭代中更新其数据/状态。

当然,你可以像你说的那样使用它,但对我来说似乎并不干净(以编程方式)。

答案 1 :(得分:1)

我点击按钮时第一个动作,我用这个:

    HUD = [[MBProgressHUD alloc] initWithWindow:[UIApplication sharedApplication].keyWindow];

        [self.view.window addSubview:HUD];


        // Regiser for HUD callbacks so we can remove it from the window at the right time
        HUD.delegate = self;

        // Show the HUD while the provided method executes in a new thread
        [HUD showWhileExecuting:@selector(DNS_info) onTarget:self withObject:nil animated:YES];
单击

然后单击2按钮,获取操作,如下所示:

HUD = [[MBProgressHUD alloc] initWithWindow:[UIApplication sharedApplication].keyWindow];

        [self.view.window addSubview:HUD];
//        HUD.dimBackground = NO;

        // Regiser for HUD callbacks so we can remove it from the window at the right time
        HUD.delegate = self;

        // Show the HUD while the provided method executes in a new thread
        [HUD showWhileExecuting:@selector(whois) onTarget:self withObject:nil animated:YES];

我想,这对你有帮助。