2011-06-01 64 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]; 

      } 
     } 
} 

您還可以更改警報視圖的委託。