It depends on how your views are setup, if you use storyboards etc, but the usual thing to do this sort of thing is in AppDelegate.m:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
TutorialViewController *tutorialViewController = [[TutorialViewController alloc] initWithNibName:@"TutorialViewController" bundle:nil];
self.window.rootViewController = tutorialViewController;
[window makeKeyAndVisible];
return YES;
}
-(void) loadFirstView {
FirstViewController *firstViewController = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
self.window.rootViewController = firstViewController;
}
And in your TutorialViewController have a call to AppDelegate to change the window.rootViewController to your FirstViewController.
//TutorialViewController.m
-(void) showFirstView {
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate loadFirstView];
}