Да, NavigationController - ваш друг в этом сценарии. Основы:
[self.navigationController pushViewController:newViewController animated:YES];
... чтобы добавить каждый последующий контроллер представления в стек, и ...
[self.navigationController popToRootViewControllerAnimated:YES];
... чтобы вернуться к стартовому экрану.
И, безусловно, можно скрыть навигационную панель в вашем методе viewDidLoad
каждого контроллера представления, однако это не позволит вам вернуться в стек. Если это преднамеренно, то я думаю, что это совершенно правильная установка.