IPHONE:UIAlertView在自定义函数/ IBAction中调用了两次

时间:2010-12-19 14:39:28

标签: iphone

我有一个IBAction进行一些处理,并且内部将有一些UIAlertViews(显示警报)。然而,似乎该段落中的FIRST警报被称为TWICE(在我点击之后立即进行,并且在所有其他警报发生后再次出现)。此外,第一次出现警报时,即使我有一个OK按钮且用户没有点击它,警报也会自动关闭。第二次出现警报时,将要求用户单击“确定”。

我尝试将IBAction中的段落移动到自己的功能中,但问题仍然存在。

我的IBAction /功能中的所有警报都是相同的:

 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"blah" message:@"blah" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil,nil];
   [alert show];
   [alert release];

但其他警报功能正常。

代码看起来像这样(“blah”是被调用两次的代码):

-(void)function {
  if (......) {
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"blah" message:@"blah" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil,nil];
         [alert show];
         [alert release];
     for (int i=0; i<2; i++) {
    if (.....) {
          //do stuff
    } else {
UIAlertView *alert2 = [[UIAlertView alloc] initWithTitle:@"blah2" message:@"blah2" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil,nil];
         [alert2 show];
         [alert2 release];
    }
     }
   } else {
UIAlertView *alert3 = [[UIAlertView alloc] initWithTitle:@"blah3" message:@"blah3" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil,nil];
         [alert3 show];
         [alert3 release];
}
}

请帮忙!

1 个答案:

答案 0 :(得分:0)

首先,我们需要更多代码来诊断您的问题。你提供的是不够的。

其次,我曾遇到过类似的问题:当一个撰写电子邮件操作由未在该设备上设置其电子邮件帐户的用户触发时,我要求我的应用显示UIAlertView中。但是,当我在具有这种情况的真实设备上测试我的代码时,两个连续的UIAlertViews一个接一个地显示,这两个都是关于未设置问题的电子邮件帐户。

我终于发现当用户试图撰写电子邮件时,iOS系统会在未设置电子邮件帐户的情况下自动显示UIAlertView,这就是为什么当我只想到一个UIAlertView时会出现两个UIAlertView的原因。

希望有所帮助。