userG
userG

Reputation: 111

Making your custom view controller to be the root IOS

I have a main view controller using a navigation controller and i was making my application over that. Now i want to add a welcome view controller for my app and make it show first instead of my main view controller. Is there any way to do it.

What I did was adding a view controller to my storyboard and added two classes of the same name then i made it my root view controller and unchecked the root view controller from the main view but it is not showing on the window. Please help me, that how can i make my welcome view to appear before the main view controller. Thanks

Upvotes: 0

Views: 314

Answers (3)

Victor Johnson
Victor Johnson

Reputation: 456

Inside Interface Builder, under the attributes section (looks like a small slider) about a quarter of the way down the list of settings, there is a section labeled "View Controller." The second item in that section is a checkbox "Is Initial View Controller," check that box and you should see the starting arrow of the story board move to the specified view controller and the app should launch to that page.

Hope this Helps.

Upvotes: 1

coria7
coria7

Reputation: 1

It calls "Splash Screen" you just need to add a new ViewController in your Storyboard or if you don't have a Navigation Controller add.

In the Splash class, in the viewDidLoad method you need to put this:

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    HomeViewController *vc = [sb instantiateViewControllerWithIdentifier:@"Home"];
    [[[[UIApplication sharedApplication] delegate] window] setRootViewController:vc];


    [self performSegueWithIdentifier:@"Home" sender:self];

here you can add conditions if you needed

Upvotes: 0

Fostah
Fostah

Reputation: 11776

You could do this programmatically by setting the app window's rootViewController. From the app delegate's application:didFinishLaunchingWithOptions:

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    UIScreen *mainScreen = [UIScreen mainScreen];

    self.window = [[KTAppWindow alloc] initWithFrame:mainScreen.bounds];
    [window makeKeyAndVisible];

    window.rootViewController = [[WelcomeViewController alloc] init];
    return YES;
}

Then you just need to set up your trigger to switch from the Welcome view to the main view. This could be scheduling an NSTimer, for example. Whatever the trigger is, once it occurs just change the window's rootViewController instance to your MainViewController.

I hope this helps.

Upvotes: 0

Related Questions