Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to Programmatically Segue to a New ViewController in a New Storyboard

Tags:

ios

swift

segue

I simply want to know how to segue to a new view controller in a new storyboard without having to create the new view controller programmatically.

The Scenario: I have one view controller that's created entirely in code and the system thinks I'm in Storyboard A. I want to segue from this view controller to another view controller that's contained on Storyboard B.

  1. I could create a segue attached to a storyboard reference (which is a great suggestion) if this view controller was created with Storyboard. But it's in code, so I can't do this.
  2. My other option is to make the next view controller be totally created in code so that I can present it without using segues. That's a pain, but will work.
  3. My third option is to initialize the new storyboard in code, initialize the new view controller in code using a storyboard identifier, and then use the navigation controller to segue to it.

If there are other options I'm not aware of please include them below!

like image 767
Rob Norback Avatar asked Dec 29 '25 04:12

Rob Norback


2 Answers

This piece of code allows you to segue to any viewController anywhere in your application while still being able to build your viewController with storyboard.

func settingsButtonPressed(sender:UIButton) {
    let storyboard = UIStoryboard(name: "AccountLinking", bundle: nil)
    let linkingVC = storyboard.instantiateViewControllerWithIdentifier("AccountLinkingTable")
    self.navigationController?.pushViewController(linkingVC, animated: true)
}

So many hours saved thanks to this little function.

like image 136
Rob Norback Avatar answered Dec 30 '25 19:12

Rob Norback


I would urge anyone reading this to take a look at the Storyboard Reference introduced in Xcode 7 to achieve this instead of loading the storyboard programatically.

like image 44
tebs1200 Avatar answered Dec 30 '25 21:12

tebs1200