IOS: остановить цикл UIAlert - PullRequest
0 голосов
/ 01 июня 2011

У меня есть этот код:

- (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 для контроля?

Ответы [ 3 ]

3 голосов
/ 01 июня 2011

Установите делегата второго alertView на ноль.

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

Однако, если вы хотите добавить опции ко второму включению в будущем, вы можете установить значение tag для alertView и проверить теги при вызове метода делегата. В зависимости от значения tag вы можете выполнить другое задание.

1 голос
/ 01 июня 2011

Вы можете установить для свойства tag altertView значение 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];

          }
       }
}

Вы также можете изменить делегатапросмотр предупреждений.

0 голосов
/ 01 июня 2011

Вы не можете остановить его до тех пор, пока не будет установлено свойство delegate nil.

.

...