I am having an issue with popViewController.

I use pushViewController to go to OrdersFormViewController

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

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

From OrdersFormViewController I display a UIAlertView in viewDidLoad and call popViewController but this is not working.

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

[self.navigationController popViewControllerAnimated:YES];

The view is not "popped" from the navigationController but when pushing the standard back button in the navigation bar, only the navigation bar changes and not the actual view.

Does anyone have an idea why this is happening?

有帮助吗?

解决方案

You should wait till the user dismisses the alert. This makes less confusion to the user.

You replied to my comment that it worked, for some magical reason I don't understand.

其他提示

I had a similar problem I fixed it by using

[self.parentViewController.navigationController popViewControllerAnimated:YES];

Hope that helps.

Not sure what you're trying to acomplish; but try adding it to viewDidAppear instead.

viewDidLoad may be getting called before you do the initial pushViewController call.

You should do all this in the -viewDidAppear: method. When called here, the animation sequence is currently in progress, and you controller will not have actually been animated onscreen yet. Wait until you've animated on screen, then dismiss yourself.

If you created your project from master-detail template, remove the split view controller.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top