1

基本的に私は3つのステップを持っています:

  1. サーバーに送信するデータを準備する必要があります。これには時間がかかります。
  2. データを準備したら、それをサーバーに送信する必要があります。これにも時間がかかります。
  3. すべてが正常であるというサーバーからの応答を待ちます。

これらのアクションのそれぞれに MBProgressHUD を使用することを考えていました - 私は hud を表示し、showWhileExecutingメソッドを使用します。次に、そのコードで hud を非表示にすると、次のアクションが呼び出され、hud が再び表示されます。

理論的にはこれはうまくいくはずですが、これはこれが行われるべき方法ですか?

4

2 に答える 2

2

MBProgressHUDに依存しない方がよいでしょう。運用管理者としてではなく、ユーザーへのフィードバック要素として使用する必要があります。

たとえば、NSOperationQueueを使用して、各反復でデータ/ステータスを更新するようにhudに通知することができます。

もちろん、あなたが言ったようにそれを使うことはできますが、私には(プログラム的に)きれいに見えません。

于 2012-07-10T14:05:26.523 に答える
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];

これはあなたの助けになると思います。

于 2012-07-10T14:22:30.707 に答える