In one of my tab-bar apps, I display a splash screen like so:
In my app delegate object, I start displaying it in didFinishLaunchingWithOptions
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
splashScreenVC = [[SplashScreenViewController alloc] initWithNibName:@"SplashScreenView" bundle:nil];
[window addSubview:splashScreenVC.view];
[window makeKeyAndVisible];
//set delay before showing new screen
[NSTimer scheduledTimerWithTimeInterval:1.5f target:self selector:@selector(onSlashScreenExpired:) userInfo:nil repeats:NO];
return YES;
}
The onSlashScreenExpired method looks like:
- (void)onSlashScreenExpired:(id)userInfo{
[splashScreenVC.view removeFromSuperview];
[splashScreenVC release];
// At this point, create the tab bar controller and display it
}
I'm fairly certain I cobbled this together from another question on SO, but I can't find it.