Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
199 views
in Technique[技术] by (71.8m points)

ios - Creating a first launch viewcontroller

I'm trying to create a "initial setup page" that is shown if the app is launched for the first time on the device.

I made it like this:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];


    if ([[NSUserDefaults standardUserDefaults] boolForKey:@"HasLaunchedOnce"])
    {
        NSLog(@"not first launch");
        self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
        self.window.rootViewController = self.viewController;
        [self.window makeKeyAndVisible];
        return YES;

    }
    else
    {
        [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"HasLaunchedOnce"];
        [[NSUserDefaults standardUserDefaults] synchronize];



        NSLog(@"first launch");

    }
}

Now I want to create a view controller and push to this view controller if it's the first time the app is launched.

What do I need to do?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Create a new ViewController. Import the header in appDelegate.h file also create a instance variable of that class with name initialViewController.

Change your else condition like:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
   self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
   if ([[NSUserDefaults standardUserDefaults] boolForKey:@"HasLaunchedOnce"])
   {
       NSLog(@"not first launch");
       self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
       self.window.rootViewController = self.viewController;
   }
   else
   {
       [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"HasLaunchedOnce"];
       [[NSUserDefaults standardUserDefaults] synchronize];

       self.initialViewController = [[InitialViewController alloc] initWithNibName:@"InitialViewController" bundle:nil];
       self.window.rootViewController = self.InitialViewController;
       NSLog(@"first launch");
   }
   [self.window makeKeyAndVisible];
   return YES;
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...