Отклонение UIAlertView программно
Мне нужна помощь по программному отключению UIAlertView. В настоящее время у меня есть это
UIAlertView *alert1 = [[UIAlertView alloc]initWithTitle:@"title" message:@"message" delegate:nil cancelButtonTitle:nil otherButtonTitles:nil];
а затем я называю это
[alert1 dismissWithClickedButtonIndex:0 animated:NO];
но ничего не происходит.
Ответы
Ответ 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:, чтобы обрабатывать любую обработку, которую вам нужно выполнить.