0

関数Bで実行される関数が終了してから数秒後にUIActionSheetを表示したい.

次のようにするとうまくいきます:

main function
{
[self function A]
[self performSelector:@selector(function B) withObject:nil afterDelay:5];
}

しかし、私はMBProgressHUDをアクティビティインジケーターとして使用しています:

main function
{
[HUD showWhileExecuting:@selector(funcion A) onTarget:self withObject:nil animated:YES];
[self performSelector:@selector(function B) withObject:nil afterDelay:5];
}

関数 B が呼び出されることはありません。[セルフ機能B]に切り替えると呼び出されます。これは、まだ理解していないスレッドの問題だと思います。[self performSelectorOnMainThread] を使用すると、関数 B が呼び出されますが、それを遅らせることはできないようです。

4

1 に答える 1

0

あなたの問題は、HUD がメイン スレッドで呼び出され、待機するように設定されていないことです。したがって、functionA を起動し、すぐに関数 B の performSelector を呼び出します。関数 B を正しく実行する場合は、関数 A の最後で呼び出す必要があります。

于 2012-01-05T18:56:54.363 に答える