プログラムでUIAlertViewを閉じるのに助けが必要です。現在私はこれを持っています
UIAlertView *alert1 = [[UIAlertView alloc]initWithTitle:@"title" message:@"message" delegate:nil cancelButtonTitle:nil otherButtonTitles:nil];
その後、私はこれを呼び出します
[alert1 dismissWithClickedButtonIndex:0 animated:NO];
しかし、何も起こりません。
2つのことを設定する必要があります。
1。hファイルを含める:<UIAlertViewDelegate>
2。以下の実装に従ってください...
UIAlertView *alert1 = [[UIAlertView alloc]initWithTitle:@"title" message:@"message" delegate:nil cancelButtonTitle:nil otherButtonTitles:nil];
[alert1 show];
[self performSelector:@selector(dismiss:) withObject:alert1 afterDelay:1.0];
却下方法は...
-(void)dismiss:(UIAlertView*)alert
{
[alert dismissWithClickedButtonIndex:0 animated:YES];
}
これがお役に立てば幸いです。
私もこの問題に遭遇しました。私の場合、何らかの理由で次のように呼び出します。
[alert dismissWithClickedButtonIndex:0 animated:NO];
常に機能するとは限りませんでした(はい、UIスレッドで呼び出しても、アラート!= nil)。代わりに、アニメーションフラグをYESに設定するだけで機能しました。
[alert dismissWithClickedButtonIndex:0 animated:YES];
多分それはAppleバグ...
最初に表示する必要があります。
UIAlertView *alert1 = [[UIAlertView alloc]initWithTitle:@"title" message:@"message" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil];
[alert1 show];
次にデリゲートメソッドで
- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex{
if(buttonIndex==0){
// do something
}
}
呼び出したメソッドは正しいです。
メソッドdismissWithClickedButtonIndex:animated:を呼び出すと、alert1はnilになると思います。
変数alert1を確認してみてください。
代わりにデリゲートメソッドを使用できます-alertView:didDismissWithButtonIndex:代わりに、アラートビューが画面から削除されると呼び出されます、ORより良いアプローチは、背景を使用することですスレッド、たとえば-performSelectorInBackground:withObject:を使用して、実行する必要のある処理を処理します。