iOS首次发布之旅 - 检测应用是否首次启动

Luk*_*uke 5 xcode viewcontroller ios segue

这个网站全新,这里有很多业余知识!几个星期前开始自学.有一个非常可靠的iPhone应用程序,但我想要实现的最后一个功能是能够;

创建"首次启动"导游.

我想知道的是; 如果是用户首次启动应用程序,我怎么能以编程方式将视图重定向到不是"初始视图控制器"的新视图控制器,而无需点击按钮.

我已经阅读了一些有关检测首次启动的教程,我理解.我也阅读了一些教程并尝试了书中的所有内容来尝试实现"performSegueWithIdentifier",但是没有什么对我有用!

也许是因为我正在使用Xcode 5并在iOS 7上进行测试.如果有人能帮助我,我将永远感激不尽!

(void)viewDidLoad
{
    [super viewDidLoad];

    if ([[NSUserDefaults standardUserDefaults] boolForKey:@"FirstLaunch"]) {
    }
    else {
        // Place code here
        self.view.backgroundColor = [UIColor redColor];

        [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"FirstLaunch"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    }    

    // Do any additional setup after loading the view, typically from a nib.
}
Run Code Online (Sandbox Code Playgroud)

nei*_*lco 6

如果您尚未使用注册任何默认值[[NSUserDefaults standardDefaults] registerDefaults:],则第一次拨打电话时[[NSUserDefaults standardDefaults] boolForKey:@"FirstLaunch"]您将收到NO该键,因为该键不存在.

我更喜欢使用更加语义的键名,例如hasPerformedFirstLaunch,然后检查是否返回NO并执行第一个启动序列:

- (void)viewDidLoad
{
    [super viewDidLoad];

    if (![[NSUserDefaults standardUserDefaults] boolForKey:@"hasPerformedFirstLaunch"]) {
        // On first launch, this block will execute

        // Set the "hasPerformedFirstLaunch" key so this block won't execute again
        [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"hasPerformedFirstLaunch"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    }
    else {
        // On subsequent launches, this block will execute
    }    

    // Do any additional setup after loading the view, typically from a nib.
}
Run Code Online (Sandbox Code Playgroud)