Подтвердить что ты не робот

Отклонение UIAlertView программно

Мне нужна помощь по программному отключению UIAlertView. В настоящее время у меня есть это

UIAlertView *alert1 = [[UIAlertView alloc]initWithTitle:@"title" message:@"message" delegate:nil cancelButtonTitle:nil otherButtonTitles:nil];

а затем я называю это

[alert1 dismissWithClickedButtonIndex:0 animated:NO];

но ничего не происходит.

4b9b3361

Ответ 1

Вам нужно установить две вещи.

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];
}

Надеюсь, это поможет вам.

Ответ 2

Я тоже столкнулся с этой проблемой. В моем случае, по какой-то причине, вызов:

[alert dismissWithClickedButtonIndex:0 animated:NO];

не работал всегда (да, даже называя его в потоке пользовательского интерфейса и да, alert!= nil), вместо этого просто устанавливая анимированный флаг в YES, он работал:

[alert dismissWithClickedButtonIndex:0 animated:YES];

Возможно, это ошибка Apple...

Ответ 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
    }
}

Ответ 4

Вы правильно назвали методы.
Я думаю, что alert1 равен нулю, когда ваш вызов метод rejectWithClickedButtonIndex: анимированный:
Попробуйте проверить свою переменную alert1.

Ответ 5

Вместо этого вы можете использовать метод делегата -alertView: didDismissWithButtonIndex: - он вызывается, как только виды предупреждений удаляются с экрана, или лучше подходит, используйте фоновый поток, например. с -performSelectorInBackground: withObject:, чтобы обрабатывать любую обработку, которую вам нужно выполнить.