2014-09-09 4 views
0

пытаюсь показать да/нет alertview и в соответствии с ответом делать действия, но alertview не исчезаетUIAlertView удалить не работает

код, который я подать в суд

UIAlertView *alert ; 
- (void)GoOffline:(id)sender { 


    alert = [[UIAlertView alloc] initWithTitle:@"Alert" 
                message:@"It will take time to download according to connection speed..Do you want to proceed?" 
                delegate:self 
              cancelButtonTitle:@"No" 
              otherButtonTitles:@"Yes", nil]; 
    [alert show]; 
} 

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
    dispatch_async(dispatch_get_main_queue(), ^{ 

     [alert removeFromSuperview]; 

    }); 
// Handle yes No code  

} 

Я даже попробовал [alert removeFromSuperview];, но предупреждение было прикреплено к просмотру до обработки да/нет кода, любая идея скрыть его сразу

+0

Выполняет ли весь код в основном потоке? – KudoCC

+1

Не нужно указывать какие-либо вещи для снятия предупреждения с экрана, он автоматически удаляется. – Rajesh

+0

Нет необходимости отправлять async для удаления uialertview. – nikhil84

ответ

0

Вы хотите, чтобы вы скрыть это программно? Не нажимайте «Да» или «Нет»? Если да, то попробуйте:

[alert dismissWithClickedButtonIndex:0 animated:YES]; 

// не забудьте назвать это в основном потоке (диспетчерская, performOnMainThread, ...)

+0

Мне нужно либо с да, либо без щелчка, чтобы исчезнуть предупреждение. – AMH

+0

UIAlertView автоматически исчезает, когда вы нажимаете «ДА» или «НЕТ». Вам не нужно добавлять делегата в это оповещение, чтобы обрабатывать нажатия кнопок. –

+0

Возможно, UIAlertView был скрыт слоем (прозрачным), поэтому вы не можете его коснуться. Получаете ли вы обратный вызов, когда используете делегат clickedButtonAtIndex? –

0

Вы можете обрабатывать да или нет, как показано ниже

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ 
if (buttonIndex == 0) 
{ 
    [alert removeFromSuperView]; //[alertView removeFromSuperView];(Handling NO) 
} 
else if (buttonIndex == 1) 
{ 
    [alert removeFromSuperView]; //[alertView removeFromSuperView];(Handling YES) 
} 

} 

Hope it helps you..! 
+0

у вас были попытки до этого типа ответа –

Смежные вопросы