How do I load another view controller from the current view controller's implementation file?

17,713

If you want to open the ViewController from another one then you should define it like this in your IBAction. It is good idea to make the viewController as property though.

FirstViewController.h

@class SecondViewController;

@interface FirstViewController : UIViewController

@property(strong,nonatomic)SecondViewController *secondViewController;
@end

FirstViewController.m

-(IBAction)buttonClicked:(id)sender{
    self.secondViewController =
                    [[SecondViewController alloc] initWithNibName:@"SecondViewController"
                                                               bundle:nil];
   [self presentViewController:self.secondViewController animated:YES completion:nil]; 

}

You should make a viewController as rootViewController in your AppDelegate class something like this

YourFirstViewController *firstViewController=[[YourFirstViewController alloc]initWithNibName:@"YourFirstViewController" bundle:nil];

self.window.rootViewController=yourFirstViewController;
Share:
17,713
Octavian
Author by

Octavian

Updated on June 17, 2022

Comments

  • Octavian
    Octavian almost 2 years

    I need to create an app which features a login/signup form and then a custom Google Map. I am new to iOS programming and trying to learn the things needed for this app very fast.

    So, I have created the frontend and the backend of the login form, it works. I have an action which is triggered by the "Log in" button which verifies the credentials and either trigger a error either presents the Google Map.

    I want to show that Google Map in another view controller which controls another xib file. I created the view controller and the xib file.

    My question is how can I load another view controller from an action placed in the implementation file of the current view controller?

    Now, I have this code:

    UIViewController *mapViewController =
                    [[BSTGMapViewController alloc] initWithNibName:@"BSTGMapViewController"
                                                               bundle:nil];
    

    How can I make it the "root view controller" of the window and maybe featuring a transition (considering my logic is ok)?

  • Octavian
    Octavian about 11 years
    I remember trying that. Let me test and I will report back.
  • souvickcse
    souvickcse about 10 years
    hi @nsgulliver if i have a button in secondViewController but i want to hide the button in firstViewController while i am adding the secondViewController as sub view. how to do it?