2011-06-01 68 views
0

的一个循环我有这样的代码:IOS:停止UIAlert

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
     if(buttonIndex == 0) 
     { 

     } 
     else if(buttonIndex == 1) 
     { 
      UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Danger" 
                 message:@"war" 
                 delegate:self 
               cancelButtonTitle:@"OK" 
               otherButtonTitles:nil]; 
    [alertView show]; 
    [alertView release]; 

     } 
} 

,但每一次我推确定这UIAlert交回此委托方法中的时间;我该如何解决这件事?我可以使用BOOL作为控件吗?

+0

您可以使用'[alertView cancelButtonIndex]'来检查取消按钮的索引(而不是像你那样对它进行硬编码) – 2011-06-01 13:51:10

回答

3

设置第二alertView为零的代表。

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Danger" 
                message:@"war" 
                delegate:nil 
              cancelButtonTitle:@"OK" 
              otherButtonTitles:nil]; 

但是,如果你想选择添加到第二个在未来,你可以设置一个tag价值的alertView和检查的委托方法调用的标记。根据tag的值,您将执行一项不同的任务。

0

你不能阻止它直到并且除非你设置delegate财产nil

使用如下

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
      if(buttonIndex == 0) 
      { 

      } 
      else if(buttonIndex == 1) 
      { 
       UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Danger" 
                 message:@"war" 
                 delegate:nil             cancelButtonTitle:@"OK" 
               otherButtonTitles:nil]; 
       alertView.tag = 1; 
       [alertView show]; 
       [alertView release]; 

      } 
} 
1

您可以将altertView的tag属性设置为1这样

alertView.tag = 1; 

和你的代码更改为:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 

     if ([alertView tag] != 1) { 
      if(buttonIndex == 0) 
      { 

      } 
      else if(buttonIndex == 1) 
      { 
       UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Danger" 
                 message:@"war" 
                 delegate:self 
               cancelButtonTitle:@"OK" 
               otherButtonTitles:nil]; 
       alertView.tag = 1; 
       [alertView show]; 
       [alertView release]; 

      } 
     } 
} 

您还可以更改警报视图的委托。