I am trying to push three view controllers onto the navigation controller.
[self.navigationController pushViewController:one animated:YES];
[self.naviga
The problem with the current most upvoted answer is that one and two will be visible in a split second before the third becomes visible. Not a huge problem, but it'll not make a good impression on the user. The solution you're looking for:
NSMutableArray *controllers = [self.navigationController.viewControllers mutableCopy];
[controllers addObject:one];
[controllers addObject:two];
[controllers addObject:three];
[self.navigationController setViewControllers:controllers animated:YES];
This will animate in three without one or two becoming visible in the process.