ios objective-c storyboard screen segue

Decidir la pantalla de apariencia iOS



objective-c storyboard (3)

De nuestra discusión en los comentarios lo que pude entender es que no necesita usar StartViewController en absoluto. Primero, haga que View1 su Initial View Controller en el guión gráfico. Y luego solo haz esto en tu AppDelegate .

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { BOOL someCondition; if (someCondition) { return YES; } else { UIWindow *keyWindow = application.keyWindow; UIStoryboard *storyboard = keyWindow.rootViewController.storyboard; ViewController2 *viewController2 = [storyboard instantiateViewControllerWithIdentifier:@"View2"]; keyWindow.rootViewController = viewController2; } return YES; }

Por favor refiérase a la imagen a continuación

Quiero iniciar la aplicación ''directamente'' en la pantalla "VER 1" o "VER 2", sin que aparezca la pantalla "INICIAR" que decide visualizar la pantalla para visualizar.

Eg. in loadView() of STARTviewcontroller.m if (some condition) { call "VIEW 1" screen } else { call "VIEW 2" screen }

¿Es esta la mejor manera de hacerlo? ¿Qué debo usar segue / [self presentViewController: ...] ??


Haz una cosa.

Configure el controlador " View1 " como controlador de vista inicial en su guión gráfico.

Ahora y en tu didFinishLaunch de AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. BOOL showSecondViewController = YES; UIStoryboard *mainStoryBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; if (showSecondViewController) { ViewController2 *objSecondViewController = [mainStoryBoard instantiateViewControllerWithIdentifier:@"ViewController2"]; self.window.rootViewController = objSecondViewController; [self.window makeKeyAndVisible]; } else { // It will show First view controller } return YES; }

Espero eso ayude !


Necesita establecer IDs respectivamente para ambos ViewControllers. Luego, determina qué ViewController presentar en el nivel de AppDelegate.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { if(someCondition) { UIViewController *yourController1= (UIViewController *)[mainStoryboard instantiateViewControllerWithIdentifier: @"viewController1Identifier"]; [self.window.rootViewController presentViewController: yourController1animated:YES completion:nil]; }else{ //instantiate 2ndViewController `enter code here` } }