popViewController не работает - PullRequest
       14

popViewController не работает

3 голосов
/ 29 марта 2011

У меня проблема с popViewController.

Я использую pushViewController, чтобы перейти к OrdersFormViewController

OrdersFormViewController *ordersFormViewController = [[OrdersFormViewController alloc] initWithNibName:@"OrdersFormViewController" bundle:nil];

[self.navigationController pushViewController:ordersFormViewController animated:YES];
[ordersFormViewController release];

С OrdersFormViewController Я отображаю UIAlertView в viewDidLoad и вызываю popViewController, но это не работает.

UIAlertView* alertView = [[UIAlertView alloc]
                         initWithTitle:@"Error"
                         message:@"Error"
                         delegate:self
                         cancelButtonTitle:@"OK"
                         otherButtonTitles:nil];
[alertView show];
[alertView release];

[self.navigationController popViewControllerAnimated:YES];

Вид не «выталкивается» из контроллера навигации, но при нажатии стандартной кнопки «Назад» на панели навигации изменяется только панель навигации, а не фактический вид.

У кого-нибудь есть идея, почему это происходит?

Ответы [ 5 ]

6 голосов
/ 29 марта 2011

У меня была похожая проблема, я исправил ее с помощью

[self.parentViewController.navigationController popViewControllerAnimated:YES];

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

4 голосов
/ 29 марта 2011

Не уверен, что вы пытаетесь достичь; но попробуйте добавить его к viewDidAppear.

viewDidLoad может быть вызван до того, как вы сделаете начальный pushViewController вызов.

1 голос
/ 29 марта 2011

Вам следует подождать, пока пользователь не отключит оповещение.Это упрощает понимание пользователя.

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

0 голосов
/ 27 апреля 2019

Если вы создали свой проект из шаблона master-detail, удалите контроллер разделенного вида.

0 голосов
/ 29 марта 2011

Вы должны сделать все это в методе -viewDidAppear :. Когда вызывается здесь, последовательность анимации в данный момент выполняется, и ваш контроллер фактически не будет анимирован на экране. Подождите, пока вы не оживете на экране, а затем отклоните себя.

...