0

ビューがあります。このビューの読み込みには時間がかかるため、[ビューを表示] ボタンをクリックすると、読み込みに 2 秒ほどかかります。

今回は問題ありませんが、ボタンを押してから新しいビューが表示されるまでの間、「Loading」メッセージを追加したいと思います。

を使用MBProgressHUDしていますが、別のスレッドを使用してビューをロードしているため、これはお勧めできません。


私がこれまでに持っているコード

[MBProgressHUD showHUDAddedTo:self.view animated:YES];
dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
    [self presentModalViewController:testViewController animated:YES];

    dispatch_async(dispatch_get_main_queue(), ^{
        [MBProgressHUD hideHUDForView:self.view animated:YES];
    });
});

次のビューが実際に読み込まれるまで、「読み込み」を表示したいだけです。viewDidLoadこのアプローチを使用すると、メインスレッドでメソッドを実行しないため、次のビューで多くの問題が発生します。

どうすればこれを修正できますか?

4

1 に答える 1

1

あなたがしたいことは、メインスレッドに他のビューをロードすることです。ビューがロードされたら、を表示しMBProgressHUDます。dispatch_async次に、アプローチを使用して、バックグラウンドでしばらく時間がかかる操作を実行します。

于 2012-12-28T15:44:59.063 に答える