iOS Première vue de lancement

J'essaie de mettre une première vue de lancement. J'ai déjà essayé quelques trucs mais ça ne marchera pas.

Voici ce que j'ai:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { UIPageControl *pageControl = [UIPageControl appearance]; pageControl.pageIndicatorTintColor = [UIColor lightGrayColor]; pageControl.currentPageIndicatorTintColor = [UIColor blackColor]; pageControl.backgroundColor = [UIColor whiteColor]; return YES; if ([[NSUserDefaults standardUserDefaults] boolForKey:@"yourCondition"]) { //launch your first time view self.viewController = [[viewController alloc] initWithNibName:@"viewController" bundle:nil]; } else { //launch your default view self.viewController = [[viewController alloc] initWithNibName:@"defaultViewController" bundle:nil]; [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"yourCondition"]; [[NSUserDefaults standardUserDefaults] synchronize]; } } 

D'une manière ou d'une autre cela ne fonctionne pas, il est dit que viewController n'est pas trouvé en tant que type d'object de AppDelegate. Des idées?

Si vous ne faites rien, le controller de vue initial du storyboard apparaîtra. Si vous voulez que quelque chose d'autre se produise, ce que vous voulez définir est self.window.rootViewController . Dans ce cas, vous devrez également créer et afficher la window manuellement.

Il y a quelques problèmes avec votre implémentation de l' application:didFinishLaunchingWithOptions: ce qui est certainement la cause de vos problèmes.

Je vous recommand de lire quelques tutoriels sur le développement iOS, car ce sont des concepts fondamentaux que vous devrez comprendre si vous envisagez de faire de sérieux développements dans le futur.

Cela étant dit, le code suivant devrait vous voir à droite:

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [self setWindow:[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]]; UIViewController *viewController = nil; if ([[NSUserDefaults standardUserDefaults] boolForKey:@"yourCondition"]) { //launch your first time view viewController = [[viewController alloc] initWithNibName:@"viewController" bundle:nil]; } else { //launch your default view viewController = [[viewController alloc] initWithNibName:@"defaultViewController" bundle:nil]; [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"yourCondition"]; [[NSUserDefaults standardUserDefaults] synchronize]; } [[self window] setRootViewController:viewController]; [[self window] makeKeyAndVisible]; return YES; } 

L'implémentation par défaut de l' application:didFinishLaunchingWithOptions: s'attend à ce que vous application:didFinishLaunchingWithOptions: un boolean, ce qui est indiqué par la signature de la méthode.

Vous manquez également l'appel important au début de la méthode qui configure la NSWindow principale pour que votre application soit présentée.

Comme indiqué par @matt, votre code s'attend à ce que vous ayez une propriété sur AppDelegate qui contiendrait votre reference à viewController . D'après ce que vous avez mentionné à propos de l'erreur de compilation, il semblerait que vous n'ayez pas cette configuration de relation. Il se peut que vous n'ayez pas besoin de cela de toute façon car vous pouvez essentiellement get la même chose en définissant la propriété rootViewController de votre NSWindow .

Encore une fois, je vous recommand de lire quelques tutoriels débutants pour le développement iOS ou d'acheter un livre décent car les problèmes de ce genre sont assez fondamentaux. Si vous avez des problèmes avec cela seul, vous vous refindez seulement plus confus et vous aurez probablement besoin d'aide si vous commencez à plonger dans un code plus complexe.