Change iPhone splash screen time

33,774

Solution 1

You need to create a view controller for displaying the splash screen as done below.

   - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        [self generateRandomSplashScreen];

        [self performSelector:@selector(removeSplashScreen) withObject:nil afterDelay:SPLASHSCREEN_DELAY];

    [self otherViewControllerLoad]; // the other view controller

        [self.window makeKeyAndVisible];
        return YES;
    }
    -(void) generateRandomSplashScreen
    {
        splashScreenViewController = [[SplashScreenController alloc] initWithNibName:@"SplashScreenController" bundle:[NSBundle mainBundle]];

        [self.window addSubview:self.splashScreenViewController.view];
    }

    -(void) removeSplashScreen
    {
        [splashScreenViewController.view removeFromSuperview];
        self.window.rootViewController = self.tabBarController;
        [splashScreenViewController release];
    }

Solution 2

Write sleep(5.0) in your

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions method.

Solution 3

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

  /*this will pause main thread for x interval seconds. 
  put on the top of application:didFinishLaunchingWithOptions, so it will not 
  proceed to show window until sleep interval is finished.*/

    [NSThread sleepForTimeInterval:5]; //add 5 seconds longer.
   //other code....
}

Solution 4

Probably the splash screen you are talking about is "default.png" file. As JustSid mentioned, this file is not intended to be splash screen, rather to be used as a first screen snapshot to improve user experience concerning application loading time. Check human interface guideline

http://developer.apple.com/library/ios/documentation/userexperience/conceptual/mobilehig/IconsImages/IconsImages.html#//apple_ref/doc/uid/TP40006556-CH14-SW5

If you want to implement splashscreen, you should use ie. NSTimer and UIView components.

Share:
33,774
iOS developer
Author by

iOS developer

Updated on November 25, 2020

Comments

  • iOS developer
    iOS developer over 3 years

    How would I make the splash screen stay for longer, 5 seconds, for example?

  • user
    user almost 11 years
    This is the most clever yet straightforward way to do this.
  • Van Du Tran
    Van Du Tran about 9 years
    Wouldn't this freeze your app code for 5 seconds? What if I want to fetch some cloud data while the 5 seconds is happening?
  • Dhara
    Dhara over 8 years
    Yes it will be in sleep mode. So nothing will happen.
  • Nicolas Miari
    Nicolas Miari about 8 years
    I was under the impression that the operating system (iOS) will kill your app if it takes too long to launch. Have you tested this code?
  • rmaddy
    rmaddy over 7 years
    DO NOT do this. Very bad.
  • rmaddy
    rmaddy over 7 years
    DO NOT do this. Very bad.