I am really trying to do my best but I can't really find out what's going wrong in my code. I made a lot of search but I guess I just can't understand some objective c basics ;)
My first question is related to the code below :
[window addSubview:tabBarController.view];
UIImage *image = [UIImage imageNamed:@"lol.png"];
UIImageView *defaultImage = [[UIImageView alloc] initWithImage:image];
Does it make a difference doing this :
[window addSubview:defaultImage];
or this :
[tabBarController.view addSubview:defaultImage];
My second question is about creating a splash screen. I tried to do it by myself but I just can't find out what's not working (we're in appDelegate) :
[window addSubview:tabBarController.view];
UIImage *image = [UIImage imageNamed:@"lol.png"];
UIImageView *defaultImage = [[UIImageView alloc] initWithImage:image];
[window addSubview:defaultImage];
[window makeKeyAndVisible]; //makes the window visible right ?
UIImage *image2 = [UIImage imageNamed:@"lol2.png"];
UIImageView *pubImage = [[UIImageView alloc] initWithImage:image2];
[UIView setAnimationDelegate:self];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:2.0];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:window cache:YES]; //not sure about the forView:window ...
[defaultImage removeFromSuperview];
[window addSubview:pubImage];
[UIView commitAnimations];
Hmm, I guess since I called "makekeyandvisible" window should be visible and animation should be showed to users ...
Well, I am missing a step as it doesn't work :D.
Help welcome,
Gauthier.
I don't agree with the first statement in the other answer, that says 'If you add an image to your project named "Default.png" it will act as a splash screen.'
Default.png is the launch image. The Apple HIG specifically distinguishes between launch image and splash screen.
In particular, it says
Hence, for a splash screen, use
NSTimer
or a button for the user to dismiss the splash screen.If you add an image to your project named "Default.png" it will act as a splash screen.
Forcing your user to look at a screen any longer than necessary is typically considered bad.
If you do want to add one anyways using addSubview: should work fine, if you'd like animation you may want to look into CATransitions instead of the UIView animations.
Adding the splash screen to the window or the main view controller should appear the same to the user.
Edit: Try this snippet -- you'll need to
#include <QuartzCore/QuartzCore.h>
and add the QuartzCore frameworkAdd this if you need to do something when the transition is finished: