I am trying to create an UIViewController
from a Nib file. On Google I found that I can only load an UIView from Nib.
But some suggests that I could create a Nib file (of UIView) whose File Owner is set to our ViewController
.
That is what I did, I got no crashes, but the View is just not displayed.
EDIT:
Tried to push the viewcontroller
like this
self.navigationController!.pushViewController(CoolViewController(), animated: true );
But it still showing black screen when it is pushed
XCode 6.3 - Not using Storyboards
You need to allocate your
ViewController
, then initialize it by telling the iOS the name of the nib.I see you're using Swift; I'm afraid I don't know swift, only objective-c. But here is how it would be done in objective-c:
... where "CoolDesign" is the base name of your nib. That is, you create CoolDesign.xib in Interface Builder, Xcode compiles the XML - text - xib into CoolDesign.nib, then you tell initWithNibName to open just @"CoolDesign".
It's not enough just to tell Interface Builder that a design document is a
UIViewController
. While in principle the iOS could figure out what you mean, also in principle you could have multiple nibs for a singleUIViewController
subclass.Try this, you can load a
UIViewController
withnibName:
Swift
self.navigationController!.pushViewController(CoolViewController(nibName: "CoolViewControllerNibName", bundle: nil), animated: true );
Objective-C