我需要有关以编程方式解雇UIAlertView的帮助。目前我有这个
UIAlertView *alert1 = [[UIAlertView alloc]initWithTitle:@"title" message:@"message" delegate:nil cancelButtonTitle:nil otherButtonTitles:nil];
然后我称之为
[alert1 dismissWithClickedButtonIndex:0 animated:NO];
但没有任何反应。
答案 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:,来处理您需要执行的任何处理。