I would do that in your main view controller in method viewWillAppear. You can use NSUserDefaults. Here's an example:
Swift:
func isAppAlreadyLaunchedOnce() {
    let defaults = NSUserDefaults.standardUserDefaults()
    if let isAppAlreadyLaunchedOnce = defaults.stringForKey("isAppAlreadyLaunchedOnce"){
        println("App already launched")
        return true
    } else {
        defaults.setBool(true, forKey: "isAppAlreadyLaunchedOnce")
        println("App launched first time")
        //Show your tutorial.
        return false
    }
}
Objective-C:
- (void)isAppAlreadyLaunchedOnce {
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSString *isAppAlreadyLaunchedOnce = [defaults stringForKey:@"isAppAlreadyLaunchedOnce"];
    if (isAppAlreadyLaunchedOnce != nil) {
        NSLog(@"App already launched");
        return true;
    } else {
        NSLog(@"App launched first time");
        [defaults setBool:true forKey:@"isAppAlreadyLaunchedOnce"];
        //Show your tutorial.
        return false;
    }
}
And then run this method in your viewWillAppear:
Swift:
func viewWillAppear(animated: Bool) {
    isAppAlreadyLaunchedOnce()
}
Objective-C:
- (void)viewWillAppear:(BOOL)animated {
    [self isAppAlreadyLaunchedOnce];
}
NSUserDefaults will be cleared when user will uninstall app.