Почему мой UIAlertView не отображается на экране до того, как мое представление помещается в стек навигации?

Вот код в порядке звонков. UIAlertView на экране, когда вызывается этот кусок кода:

[upcAlertView dismissWithClickedButtonIndex:0 animated:YES];

[self.navigationController pushViewController:editController animated:YES];

Проблема заключается в UIAlertView НЕ удаляет с экрана по времени editController появляется. Мне нужно, чтобы это произошло, потому что у меня в viewWillAppear из editController поэтому я хочу добавить колесо быстрого прогресса (но мне нужно, чтобы диалог исчез). Этот код вызывается из основного потока.

У кого-нибудь есть понимание?

3 ответа

Решение

Проверьте документацию UIAlertViewDelegate, что более важно, метод

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex;

Когда этот метод вызывается, вы можете затем нажать viewcontroller, чтобы вы знали, что он отключен перед нажатием.

Вот так:

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
    [self.navigationController pushViewController:editController animated:YES];
}

Ваш UIAlertView соответствует протоколу UIAlertViewDelegate?

Вам нужно будет обновить ваши:

.h файл

@interface YourClass : YourClassSuperClass <UIAlertViewDelegate>

.m файл

UIAlertView *alert = //alloc init
[alert setDelegate: self];

добавьте этот метод:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
   switch (buttonIndex)

    case(0):
    {
      //Cancel button
    }
      break;

    case(..n):
    {
      //All other buttons
    }
      break;

    default:
    {
      //should never be thrown
    } 
     break;
}
check uialerview delegate  UIAlertViewDelegate 
Sent to the delegate when the user clicks a button on an alert view.
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
}
//Sent to the delegate after an alert view is dismissed from the screen.
alertView:didDismissWithButtonIndex:
{
}
Другие вопросы по тегам