0

ユーザーがボタンをクリックすると、alertview with buttonが表示され、プログラムが長時間のループに入ります。クラスデリゲートを検索しているときに、これを長く呼び出す前に、alertviewを非表示にします。

// Called when a button is clicked. The view will be automatically dismissed "**after**" this call returns
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

このコールが戻るにアラートビューを非表示にするにはどうすればよいですか

4

3 に答える 3

2

あなたが使うことができます

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex

の代わりにclickedButtonAtIndex。アラートビューが閉じられたdidDismissWithButtonIndexに呼び出されます。

ユーザーインターフェイスへの変更は、プログラムコントロールがメインの実行ループに戻ったときにのみ行われるため、アラートビューを「すぐに非表示」にすることはできません。

(より良い解決策は、メインスレッドがブロックされず、ユーザーインターフェイスが応答し続けるように、長時間実行されるタスクをバックグラウンドスレッドに移動することです。)

于 2012-10-18T12:22:42.880 に答える
1

これを追加するだけです:

    [alertView dismissWithClickedButtonIndex:buttonIndex animated:YES];

の中へ

    - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
于 2012-10-18T12:13:49.597 に答える
0

これは私が多くのトリアーの後に設立した私の解決策です

[self performSelector:@selector(`call Method`) withObject:nil afterDelay:1]
于 2012-10-20T11:35:27.673 に答える