La primera gira de lanzamiento de iOS: detectar si la aplicación se lanza por primera vez

¡Nuevo en este sitio, conocimiento bastante aficionado aquí! Comencé a enseñarme hace algunas semanas. Tengo una aplicación de iPhone bastante sólida, sin embargo, la última característica que quisiera implementar es la capacidad de;

Crea un recorrido guiado de "solo primer lanzamiento".

Lo que quiero saber es; si es el primer lanzamiento de la aplicación por los usuarios, ¿cómo puedo networkingirigir la vista a un nuevo controller de vista que no es el 'controller de vista inicial' sin tocar un button, todo de forma progtwigda?

He leído algunos tutoriales sobre la detección del primer lanzamiento que comprendo. También he leído algunos tutoriales y he intentado todo en el libro para probar e implementar "performSegueWithIdentifier" ¡sin embargo, nada funciona para mí!

Quizás sea porque estoy usando Xcode 5 y probando iOS 7. ¡Si alguien me puede ayudar, estaría agradecido para siempre!

(void)viewDidLoad { [super viewDidLoad]; if ([[NSUserDefaults standardUserDefaults] boolForKey:@"FirstLaunch"]) { } else { // Place code here self.view.backgroundColor = [UIColor networkingColor]; [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"FirstLaunch"]; [[NSUserDefaults standardUserDefaults] synchronize]; } // Do any additional setup after loading the view, typically from a nib. } 

Si no ha registrado ningún valor pnetworkingeterminado utilizando [[NSUserDefaults standardDefaults] registerDefaults:] , la primera vez que llama a [[NSUserDefaults standardDefaults] boolForKey:@"FirstLaunch"] recibirá NO ya que esa key no existe.

Prefiero usar un nombre de key más semántico, como hasPerformedFirstLaunch , entonces es cuestión de comprobar si eso devuelve NO y ejecuta la primera secuencia de inicio:

 - (void)viewDidLoad { [super viewDidLoad]; if (![[NSUserDefaults standardUserDefaults] boolForKey:@"hasPerformedFirstLaunch"]) { // On first launch, this block will execute // Set the "hasPerformedFirstLaunch" key so this block won't execute again [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"hasPerformedFirstLaunch"]; [[NSUserDefaults standardUserDefaults] synchronize]; } else { // On subsequent launches, this block will execute } // Do any additional setup after loading the view, typically from a nib. } 

Aquí hay un recorrido guiado por las fonts https://github.com/sofienazzouz/Guided-Tour , ahora si desea llamar a la visita guiada desde su delegado, debería llamarlo de esta manera

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //// initialize your initialViewController here however you want if ([[NSUserDefaults standardUserDefaults] objectForKey:@"knewOrRecentUser"]) { self.navigationController = [[UINavigationController alloc] initWithRootViewController:self.initialViewController]; } else { [[NSUserDefaults standardUserDefaults] setObject:@"old" forKey:@"knewOrRecentUser"]; GuidedTourViewController *guideTour = [[GuidedTourViewController alloc] init]; self.navigationController = [[UINavigationController alloc] initWithRootViewController:guideTour]; } [self.window setRootViewController:self.navigationController]; } 

neilco

Lo que proporcionó funciona, pero omitió el código para que la pantalla se vuelva roja (o el color que desee) durante el primer lanzamiento de la aplicación.

Ahora bien, esto puede no parecer mucho, pero cuando un novato se atreve a hacerlo, es mejor proporcionar tanta información como sea posible para que incluso NOSOTROS podamos comprender lo que está sucediendo. SÍ que sí incluye a MÍ! << = novato

  - (void)viewDidLoad { [super viewDidLoad]; if (![[NSUserDefaults standardUserDefaults] boolForKey:@"hasPerformedFirstLaunch"]) { // On first launch, this block will execute // Place code here self.view.backgroundColor = [UIColor networkingColor]; // Set the "hasPerformedFirstLaunch" key so this block won't execute again [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"hasPerformedFirstLaunch"]; [[NSUserDefaults standardUserDefaults] synchronize]; } else { // On subsequent launches, this block will execute } // Do any additional setup after loading the view, typically from a nib. }