Reputation: 8042
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
Reputation: 4765
If you created your project from master-detail template, remove the split view controller.
Upvotes: 0
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
Reputation: 4296
I had a similar problem I fixed it by using
[self.parentViewController.navigationController popViewControllerAnimated:YES];
Hope that helps.
Upvotes: 7
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
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