2011-10-15 4 views
0

Essayez d'ajouter par programmation une image splash qui traîne pendant un certain temps. J'ai Default.png déjà importé dans mon projet, et je le vois scintiller comme l'image de lancement lorsque le simulateur se lance. Je ne suis pas sûr comment faire Default.png traîner comme l'image de démarrage.iPhone Splash Image

En AppDelegate.m, à l'intérieur didFinishLaunchingWithOptions je fais ce qui suit:

MyViewController *mvc = [[MyViewController alloc] init]; 
UINavigationController *navController = [[[UINavigationController alloc] initWithRootViewController:mvc] autorelease]; 
[navController setNavigationBarHidden: YES]; 

MyViewController que vous pourriez soupçonner, est une sous-classe de UIViewController, et dans la méthode loadview je fais ce qui suit:

self.mainView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
self.view = mainView; 
mainView.backgroundColor = [UIColor yellowColor]; 

Ensuite, j'ai créé SplashScreenViewController, également une sous-classe de UIViewController, et dans la méthode loadView, je fais ce qui suit:

splashView = [[[UIImageView alloc] initWithFrame:CGRectMake(0,0, 320, 480)] autorelease]; 
splashView.image = [UIImage imageNamed:@"Default.png"]; 

Enfin, de retour à AppDelegate je, après makeKeyAndVisible:

SplashScreenViewController *splashScreen = [[SplashScreenViewController alloc] init]; 
splashScreen.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 
[navController presentModalViewController:splashScreen animated:NO]; 

Je pense que je suis juste coincé comprendre comment lier tous les sous-classes UIViewController ensemble, et comment les référencer de AppDelegate (ou si Je devrais même faire cela), etc. Tous les conseils sont appréciés. Je peux clarifier si ma question est boueuse.

+3

Avez-vous pensé à ne pas le faire? C'est une violation des directives d'interface humaine d'Apple: http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/UEBestPractices/UEBestPractices.html –

+0

Je ne publie pas ceci sur l'App Store, donc Apple HIG n'est pas applicable. – David

+0

De nombreuses applications le font, souvent en combinaison avec UIProgressView. Seul, cela ne déclenchera pas le rejet. Mais vous ne devez pas le laisser s'asseoir indéfiniment s'il y a un problème avec l'installation, comme aucune connectivité. – BojanG

Répondre

1

Vous pouvez déplacer ce à viewDidLoad de MyViewController

SplashScreenViewController *splashScreen = [[SplashScreenViewController alloc] init]; 
splashScreen.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 
[navController presentModalViewController:splashScreen animated:NO]; 

Ou vous pouvez le faire en vous AppDelegate, avant makeKeyAndVisible

splashView = [[[UIImageView alloc] initWithFrame:CGRectMake(0,0, 320, 480)] autorelease]; 
splashView.image = [UIImage imageNamed:@"Default.png"]; 
[self.window addSubview:splashView]; 
[self.window bringSubviewToFront:splashView]; 

Quel est votre plan pour rejeter le point de vue?

+1

juste pour faire une méthode pour l'enlever, c'est-à-dire pour renvoyer – David

+0

Ensuite, il suffit de coller dans le délégué de l'application, pas besoin d'un autre contrôleur (appdelegate lui-même est un contrôleur). – BojanG

+0

Cela a du sens. Retour à la planche à dessin! Merci. – David