0

我在启动不同的视图时遇到了问题。

我有某种教程。因此我在 didFinishWithLaunchOptions 中设置了这段代码:

if ([[NSUserDefaults standardUserDefaults] boolForKey:@"HasLaunchedOnce"]) {
        // Schon mal geöffnen. Kein Tutorial
    }
    else {

        [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"HasLaunchedOnce"];
        [[NSUserDefaults standardUserDefaults] synchronize];
        // Wurde das erste mal geöffnet. Tutorial anzeigen!
    }

但我现在真的不知道如何让它真正打开不同的视图。找不到任何文档:(

如果它是第一次启动并且不是初始视图控制器,我只想打开一个教程视图控制器。

4

3 回答 3

1

请看一下这个问题。我修改了答案以适合您的情况,您应该将以下代码放入application:didFinishLaunchingWithOptions:

NSString *storyboardIdentifier;
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"HasLaunchedOnce"]) {
    // Schon mal geöffnen. Kein Tutorial
    storyboardIdentifier = @"mainViewController";
} else {
    // Wurde das erste mal geöffnet. Tutorial anzeigen!
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"HasLaunchedOnce"];
    [[NSUserDefaults standardUserDefaults] synchronize];
    storyboardIdentifier = @"tutorialViewController";
}

UIViewController *rootViewController = [[[[self window] rootViewController] storyboard] instantiateViewControllerWithIdentifier:storyboardIdentifier];
[[self window] setRootViewController:rootViewController];
于 2013-05-12T12:47:37.897 回答
1
UIViewController *controller = nil;

if ([[NSUserDefaults standardUserDefaults] boolForKey:@"HasLaunchedOnce"]) {
    controller = [HomeViewController alloc] initWithNibName: @"HomeViewController" bundle: nil];
}
else {

    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"HasLaunchedOnce"];
    [[NSUserDefaults standardUserDefaults] synchronize];
    // Wurde das erste mal geöffnet. Tutorial anzeigen!

    controller = [TutorialViewController alloc] initWithNibName: @"TutorialViewController" bundle: nil];
}

self.window.rootViewController = controller;
于 2013-05-12T12:43:41.397 回答
0

对于从情节提要中实例化视图控制器,以下将起作用:

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

TutorialViewController *controller = (TutorialViewController *)[mainStoryboard instantiateViewControllerWithIdentifier:@"TutorialViewControllerID"];

请记住在情节提要中为视图控制器设置 ID。

于 2013-05-12T12:46:57.913 回答