以编程方式解雇UIAlertView

时间:2012-09-14 00:58:28

标签: iphone objective-c uialertview

我需要有关以编程方式解雇UIAlertView的帮助。目前我有这个

UIAlertView *alert1 = [[UIAlertView alloc]initWithTitle:@"title" message:@"message" delegate:nil cancelButtonTitle:nil otherButtonTitles:nil];

然后我称之为

[alert1 dismissWithClickedButtonIndex:0 animated:NO];

但没有任何反应。

5 个答案:

答案 0 :(得分:35)

你需要设置两件事。

<强> 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];
}

我希望这会对你有所帮助。

答案 1 :(得分:5)

我也遇到过这个问题。 就我而言,出于某种原因打电话:

[alert dismissWithClickedButtonIndex:0 animated:NO];

总是不起作用(是的,甚至在UI线程上调用它,是的,警告!= nil),而只是将动画标志设置为YES它起作用:

[alert dismissWithClickedButtonIndex:0 animated:YES];

也许这是一个苹果虫......

答案 2 :(得分:3)

你应该先显示它:

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
    }
}

答案 3 :(得分:0)

您调用的方法是正确的 我想当你调用方法dismissWithClickedButtonIndex时,alert1是nil:animated:
尝试检查变量alert1。

答案 4 :(得分:0)

您可以使用委托方法 -alertView:didDismissWithButtonIndex: - 一旦警报视图从屏幕上移除,它就会被调用,或者更好的方法是,使用后台线程,例如使用 -performSelectorInBackground:withObject:,来处理您需要执行的任何处理。