В случае со storyboard я делаю следующим образом:
- в
Deployment Info нужного таргета убираю
Main Interface;
- добавляю в метод
application:didFinishLaunchingWithOptions: AppDelegate следующий код
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"YourStoryboardName" bundle:nil];
UIViewController *firstViewControllerToShow = nil;
if (yourCondition) {
firstViewControllerToShow =
[storyboard instantiateInitialViewController];
} else {
firstViewControllerToShow =
[storyboard instantiateViewControllerWithIdentifier:@"YourAlternativeSceneStoryboardID"];
}
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = firstViewControllerToShow;
[self.window makeKeyAndVisible];
return YES;
}
где
yourCondition - условие в зависимости от которого надо показать тот или иной ViewController, например - зарегистрирован пользователь или нет. Если зарегистрирован, то будет показан ViewController, который указан как Initial в storyboard. Если нет - ViewController с идентификатором
YourAlternativeSceneStoryboardID.
Собственно, без storyboard все тоже самое, но без storyboard. :)