The solution you’re looking for if you’re in the firstVC:
NSMutableArray *controllers = [self.navigationController.viewControllers mutableCopy];
[controllers addObject:secondVc];
[controllers addObject:thirdVC];
[self.navigationController setViewControllers:controllers animated:YES];
This will animate in the thirdVC without the secondVc becoming visible in the process. When the user press the back button, they will return to the secondVc