Detect if user opened the View for the first Time In iOS

ios, iphone, nsuserdefaults, view

Solution

As an OOP programmer you can make a common public method.

+ (BOOL)checkWhetherRunBefore:(NSString *)key
{
    return [[NSUserDefaults standardUserDefaults] boolForKey:key];
} 

+ (void)hasRunForMyClass:(NSString *)key
{
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:key];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

And in your ViewController , you can code in the viewWillAppear or viewDidAppear like this :

- (void)viewWillAppear
{
    if(![HelpController checkWhetherRunBefore:NSStringFromClass([self class])])
    {
        //do your thing
        [HelpController hasRunForMyClass:NSStringFromClass([self class])]
    }

}

Problem

I know how I can detect if the application first time opened using NSUserDefault: ``` BOOL didRunBefore = [[NSUserDefaults standardUserDefaults] boolForKey:@"didRunBefore"]; if (!didRunBefore) { //Your Launch Code [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"didRunBefore"]; [[NSUserDefaults standardUserDefaults] synchronize]; } ``` The Issue: I want an Alert for ever view explaining about what features it contains and only open this alert when the app is first launched?

Original source