5

Is there any way instantiateViewController without using storyboard ? I did not use storyboard.

rmaddy
  • 314,917
  • 42
  • 532
  • 579
Kristoff
  • 213
  • 1
  • 5
  • 10

1 Answers1

9

Yes you can init you're controller with nib name:

let main = UIViewController(nibName: "Second", bundle: nil)

Also you can call constructor without parameters like:

let main = UIViewController()
Oleg Gordiichuk
  • 15,240
  • 7
  • 60
  • 100
  • thank you! let main = UIViewController() it worked I will accept your answer as correct – Kristoff Apr 22 '17 at 15:49
  • @Kristoff the first line is using from storyboard...basically wherever you see nibName it means *from* storyboard...The 2nd line is purely instantiating a viewController programatically...though you would also have feed the related properties of it ie buttons, labels,views,etc... – mfaani Apr 22 '17 at 15:58
  • @Honey first approach could be used with nibs also. – Oleg Gordiichuk Apr 22 '17 at 15:59
  • 1
    @Honey No, the first one is not using a storyboard. It's using a nib. You can have standalone nibs without ever using a storyboard. Nibs have been around much longer than storyboards. – rmaddy Apr 22 '17 at 16:31
  • @rmaddy ohh ok. Thanks for the correction. But don't you have to create that nib from storyboard? Or your saying you can create nibs programmatically? – mfaani Apr 22 '17 at 16:38
  • 1
    @Honey No, nibs are created in Interface Builder, without using a storyboard. Or when you create a new view controller class, Xcode gives you the option of also creating a nib. – rmaddy Apr 22 '17 at 16:42
  • @rmaddy Thanks...after 3000reps you expect to learn more complex stuff rather not knowing the diff between interface builder and storyboard #facepalm! – mfaani Apr 22 '17 at 16:46