kender
kender

Reputation: 87211

How to create a UIViewController layout in storyboard and then use it in code?

I have a Storyboard in my iOS 5 application.

In there I have created a number of screens and it works perfectly.

However there's one view controller that I create in code, not as a result of UI action but at the end of processing data. I would like to show this view controller then, as a modalViewController, but also have it designed in the storyboard editor.

Is it possible? Using the nibs I did it like this:

ResultsController *rc = [[ResultsController alloc] initWithNibName:@"ResultsController"
                                                            bundle:nil];
[self.navigationController presentModalViewController:rc animated:YES];
[rc release];

Right now I don't really have a nib files, so how do I do it?

Upvotes: 12

Views: 21207

Answers (3)

Kiryl Bielašeŭski
Kiryl Bielašeŭski

Reputation: 2683

For Swift 4

let viewController = UIStoryboard.init(name: "MainStoryboard", bundle: nil).instantiateViewController(withIdentifier: "ResultsController")
self.present(viewController, animated: true, completion: nil)

Upvotes: 2

mafis
mafis

Reputation: 1165

Take a look at the UIStoryboard class. There is a instantiateViewControllerWithIdentifier Method. So you need to set the Identfier within the Storyboard Editor for your ResultsController ViewController.

You can do something like this

UIViewController *viewController = 
   [[UIStoryboard storyboardWithName:@"MainStoryboard" 
                              bundle:NULL] instantiateViewControllerWithIdentifier:@"ResultsController"];

[self presentModalViewController:viewController animated:NO];

Upvotes: 35

Marco
Marco

Reputation: 6692

In your storyboard:

  1. Add a generic UIViewController.
  2. With the Identity Inspector, set its custom class as your ResultsController.
  3. Create a modal segue from your source view controller to the ResultsController

Upvotes: 2

Related Questions