Метод RequestFailed выдает ошибку после того, как я popViewControllerAnimated: YES - PullRequest
0 голосов
/ 28 марта 2012

Я использую следующий код для обработки неудачных запросов.

- (void)requestFailed:(ASIHTTPRequest *)request {
    [self.alertView dismissWithClickedButtonIndex:0 animated:YES];

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Request failed." message:requestFailMessage delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alert show];
    [self.navigationController popViewControllerAnimated:YES];
}

Для симуляции я включаю «Режим полета». Я пытаюсь запрос, и это не удается. После того, как я нажал кнопку «ОК», меня встретили с этой ошибкой:

2012-03-28 02:23:56.048 Obfuscated[40835:207] Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.

По сути, я просто хочу, чтобы navigationController возвращался к предыдущему контроллеру представления при сбое запроса. Тем не менее, это не похоже на работу.

Что я могу сделать, чтобы это исправить?

1 Ответ

1 голос
/ 28 марта 2012

Я думаю, вы используете popViewControllerAnimated дважды, один раз под кодом оповещения и один раз в делегате для метода оповещения.

Как только ваш навигационный стек не будет отображаться для всплывающих окон, возникает проблема.

Делай как это

- (void)requestFailed:(ASIHTTPRequest *)request {


    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Request failed." message:requestFailMessage delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alert show];

}


- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
 [self.navigationController popViewControllerAnimated:YES];
}
...