simonbs
simonbs

Reputation: 8042

popViewController not working

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?

Upvotes: 3

Views: 10467

Answers (5)

Martin
Martin

Reputation: 4765

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

Upvotes: 0

user142019
user142019

Reputation:

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.

Upvotes: 1

Tony Million
Tony Million

Reputation: 4296

I had a similar problem I fixed it by using

[self.parentViewController.navigationController popViewControllerAnimated:YES];

Hope that helps.

Upvotes: 7

Ben Gottlieb
Ben Gottlieb

Reputation: 85522

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.

Upvotes: 0

Wex
Wex

Reputation: 4686

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.

Upvotes: 4

Related Questions