Take the 2-minute tour ×

Using iOS 5. The aim is to put a button on the splash screen view, this can't be done as Default.png is static image so what I am doing is showing a modalViewController as soon as the first Viewcontroller appears. This happens to be a ViewController hosted by the TabController. The problem is,there is a small gap where as soon as the Splash screen disappears and the SplashViewController is shown (with the same image but active) the user can briefly see the view underneath.

I am using presentModalViewController to show the active splash view. Is there any way to get rid of this glitch, I am calling presentModalViewController in the viewWillAppear method of the underlying viewcontroller . I think what I need is to somehow show the active splash screen a bit earlier than this


share|improve this question
have you tried to do it in init method of underlying controller? –  Ivor Prebeg Aug 17 '12 at 10:20

1 Answer 1

Yes, you can do it - my app does this exactly. What I did was in 'didFinishLaunchingWithOptions:', I first added the same launch image in a UIImageView as a subview of the window:

UIImageView *launchView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default.png"]];
UIImageView *normalView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:<shorter version of launch image, allowing space for activity bar]];

[window addSubview:launchView];
if(isMember) {
    [window addSubview:normalView];
    normalView.alpha = 0; 

    [UIView animateWithDuration:0.25 animations:^
            launchView.alpha    = 0;
            normalView.alpha    = 1; 
        completion:^(BOOL finished)
            [launchView removeFromSuperview];
        } ];

[window makeKeyAndVisible];

Then add tabbarcontroller, the nav controller with one rootViewController. You can either set the viewController and maybe the modalController backgroundColor to clearColor - you will have to play around with this.

share|improve this answer

Your Answer


